您这个程序肯定是有错误的哦。因为您定义的数组是5个元素,就是nums[0]到nums[4],但是程序中有nums[c+1],那么c最大只能取3,否则数组下标就越界了。您的程序就存在越界的问题哦。
以上就是我的回答,希望能帮助到您。
#include<stdio.h>int main()
{
int m, c
int Jud(int m)
printf("请输入一个整数:\n")
scanf("%d", &m)
c = Jud(m)
if (c == 1)//判断用==
printf("该整数是素数\n")
else
printf("该整数不是素数\n")
}
int Jud(int x)
{
int i, n = 0, r
for (i = 1i <= xi++)
{
r = x%i
if (r == 0)
n = n + 1
}
if (n == 2)
return (1)
else
return(2)
}
判断用== 不要用=
因为else if(num>99999 &&num<0)的()中的num>99999 &&num<0是永远不可能为“真”的表达式,所以无论输入什么数据都不会执行。根据疑问1的表述,这一句应该写成else if(num>99999 || num<0)可能才对。
疑问2要对输入和这个if分支重新构架,改如下——
或
后者较好。