浅浅记录一下自己半个小时才找到的奇怪错误
题目简介:
分数 a/b 化为小数后,小数点后第 n 位的数字是多少?
#include<cstdio>
int main()
{
int a,b;
int n,store;
scanf("%d%d%d",&a,&b,&n);
for(int c=0;c<n;c++);
{
store=a*10/b;
a=a*10%b;
}
printf("%d",store);
return 0;
}
做题思路就是模拟自己做除法的过程,当除不尽的时候取余乘10再进行计算。思路没问题,代码也很清晰,就是测试数据输入345 1000 3的时候人工演算和机器答案不一样。
找找哪里出错了,我找了半个小时,最后发现是自己的for语句后面多打了个分号导致没有进入循环。很离谱的错误,但是在比赛中就会很致命,记录下这次的粗心错误,希望下次再碰上相同情况的时候能尽快发现问题解决。