非法cpp和C中的除零例外

Illegal Divide by Zero exception in cpp and C

本文关键字:零例 cpp 非法      更新时间:2023-10-16

这是一个简单的程序,用于计算恰好整除给定数字的个位数。

#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和面临同样的问题

val%temp

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