d615.
計算機運算
--
葆葆
| From: [180.218.37.34] |
發表日期
:
2010-04-13 09:06
與正確輸出不相符(line:2)
您的答案為: 632975360
正確答案為: 249975000000000000
#include <stdio.h>
int main()
{
char buf[1000000], *p;
char opd;
int i, count, length;
long sum, op1, op2;
while ( scanf("%d ", &count) != EOF )
{
for ( i = 0 ; i < count ; ++i )
{
gets(buf);
/* 取得第一個運算元 */
sscanf(p = buf, "%ld%n ", &op1, &length);
sum = op1;
p += length;
/* 取得運算元與運算子 */
for ( ; sscanf(p, " %c %ld%n ", &opd, &op2, &length) == 2 ; p += length )
{
switch (opd)
{
case '+' :
sum += op2;
break;
case '-' :
sum -= op2;
break;
case '*' :
sum *= op2;
break;
case '/' :
sum /= op2;
break;
}
}
printf("%ld\n", sum);
}
}
return 0;
}
請教一下問題可能會出在哪邊?謝謝。