#include <stdio.h>
int main()
{
int i, num;
_Bool flag = 1;
printf("请输入一个整数;");
scanf("%d", &num);
for (i = 2; i < num / 2; i++)
{
if (num % i == 0)
{
flag = 0
}
}
if (flag)
{
printf("%d是一个素数!\n", num);
}
else
{
printf("%d不是一个素数!\n", num);
}
return 0;
}
请问这里的6行 15行 19行哪里错了
6行_Bool类型是C99新增的,如果你的编译器是老版本需要改成int类型
15行 flag = 0之后少了(;)分号
for (i = 2; i < num / 2; i++) 应该是 i <= num / 2 或者 i*i <= num
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include <stdio.h>
int main()
{
int i, num;
int flag = 1; //_Bool类型是C99新增的,如果你的编译器是老版本需要改成int类型
printf("请输入一个整数;");
scanf("%d", &num);
for (i = 2; i <= num / 2; i++)
{
if (num % i == 0)
{
flag = 0; //少了(;)分号
}
}
if (flag==1)
{
printf("%d是一个素数!\n", num);
}
else
{
printf("%d不是一个素数!\n", num);
}
return 0;
}
代码看不到行数,你截图看下报错情况。
6行 15行 19行的话 顶破天也就中括号不对称的问题吧