cpp和C中的非法除零异常

时间:2014-08-16 16:56:26

标签: c++ c

这是一个简单的程序,它计算精确划分给定数字的个别数字的数量。

#include<stdio.h>

int main()
{
    long long t, val, temp, count = 0, val1;
    scanf("%lld", &t);
    while (t--)
    {
        count = 0;
        scanf("%lld", &val);
        val1=val;
        while(val1 != 0)
        {
            temp = val1 % 10;
            val1 = val1 / 10.0 ;
            if (val % temp == 0)
            {
                count++;
            }
        }
        printf("%lld", count);
    }
}

当输入为

时,它会抛出除零异常
1
300

表示测试用例数为1,值为300。 但是在这里我将它除以常数10,那么为什么抛出那个例外。那么我现在该怎么做呢? *我甚至尝试过cpp并遇到同样的问题

1 个答案:

答案 0 :(得分:6)

val%temp

如果temp0(程序中似乎就是这种情况),则表示您正在调用未定义的行为。