ひさびさ

久しぶりにCのプログラムを書いた……
「ハードウェアはソフトウェアよりも乗除算が速い」
らしいので、まずはソフトウェアで実験。
つーか、argv[]とかってなんだっけってなった……
やばいなぁ……


#include

int main(int argc, char **argv){
int dividend;
int divisor;
double answer;

int i=0;

dividend = atoi(argv[1]);
divisor = atoi(argv[2]);

if(argc >= 4){
printf("ERROR:There are many arguments.\n");
}
else if(divisor == 0){
printf("ERROR:divisor is %d!!\n",divisor);
}
else{
answer = (double)dividend / (double)divisor;
printf("%lf / %lf = %lf\n",(double)dividend,(double)divisor,answer);
}

return (0);
}

結果。


××××@******:~/home/test/residue$ time ./a.out 987654321 123456
987654321.000000 / 123456.000000 = 8000.051200

real 0m0.001s
user 0m0.000s
sys 0m0.000s

…1ms。
有効数字に問題があると思うんだが……orz