我刚刚开始学习 C 并试图创建一个代码来找到 5 位数字,如果它乘以 4 将创建一个 5 位数字的反向。这是我的代码:
#include <stdio.h>
int main(void){
int i, result, modulo, div1, div2;
modulo = 10;
for (i = 12345; i < 99999; i++){
result = i*4;
div1 = 10000;
div2 = 1;
while ((i/div1)%modulo == (result/div2)%modulo){
div1 /= 10;
div2 *= 10;
if (div2 == 100000){
printf("%d", i);
}
}
}
}
我得到了
浮点异常
我相信问题出在 while 语句条件中,但我不知道原因是什么。任何人都可以解释我有什么问题吗?非常感谢。
原因是在你有 div1 /= 10 的那一行除以 0。你看,div1 是一个整数,所以每除以 10,它就会变小,经过多次迭代,几千次,它得到 0。除以 0 会导致问题。在代码周围放一些 if 来检查它是否为 0,看看如果是,你会怎么做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句