...prime(int x),如果x是素数返回1,否则返回0,并用主函数验证
发布网友
发布时间:2024-03-23 10:15
我来回答
共5个回答
热心网友
时间:2024-07-21 07:19
无语。。。有谁把scanf()放到主函数外面的??
另外你的素数判断函数没有0和1 的情况!!
#include<stdio.h>
int x,i,a;
int prime(int x)
{ int i;
if(x == 0 || x == 1)
return 0;
for(i=2;i<x;i++)
if(x%i==0)return 0;
if(i>=x)return 1;
}
int main()
{
scanf("%d",&x);//注意!!
a=prime(x);
printf("%d\n",a);
return 0;
}
热心网友
时间:2024-07-21 07:22
//程序结构有问题。
#include<stdio.h>
int prime(int x)
{ int i;
if(x<2) return 0;
for(i=2;i<x;i++)
if(x%i==0)return 0;
return 1;
}
int main()
{
int x,i,a;
scanf("%d",&x);
a=prime(x);
printf("%d\n",a);
return 0;
}
热心网友
时间:2024-07-21 07:21
兄弟。。你的scanf都写到外面去了。。这样也能运行!?
热心网友
时间:2024-07-21 07:23
你的第二三行写错地方了。
int x,i,a;
scanf("%d",&x);
将i和一个逗号去掉后,并将这两句放在主函数里即可。
放在头文件那里定义的应该是全局变量,我运行过了,这样就没问题了。
热心网友
时间:2024-07-21 07:19
把这句for(i=2;i<x;i++)
if(x%i==0)return 0;
改为
for(i=2;i<x;i++)
{
if(x%i)
{
continue;
}
return 0;
}