我在Linux上运行此程序时遇到了浮点异常。为什么浮点异常(Linux)
#include<stdio.h>
#include<math.h>
int main()
{
int num, num1, num2, n, i, j = 0, t, count = 0;
int root;
printf("Enter number of test cases\n");
scanf("%d", &t);
while (j < t)
{
scanf("%d", &num);
root = (int)sqrt(num);
for (i = 1; i < root; i++)
{
printf("Inside for");
if (num % i == 0)
num1 = i;
while (num1 > 0)
{
n = num1 % 10;
num1 = num1/10;
if (n == 3 || n == 5 || n == 6)
count++;
}
if (num % num1 == 0)
{
num2 = (int)num/num1;
while (num2 > 0)
{
n = num2 % 10;
num2 = num2/10;
if (n == 3 || n == 5 || n == 6)
count++;
}
}
}
j++;
count = 0;
printf("%d", count);
}
return 0;
}
谁能告诉我如何纠正它
你可能想要缩进你的代码,那么阅读起来会更容易。 –
如果您可以正确缩进代码并确定程序崩溃在哪一行,这将有所帮助。 – Tarik
您使用浮点的唯一地方是'sqrt'调用。发生异常时,num的值是多少? –