C语言小小小问题
int psushu(int m)
{int i=2,t;
for(;i<=m;i++)
if(m%i==0&&i<m) break;
if(m-i==0) t=1;
else t=0;
return(t);
}
void main()
{
int a,s;
printf("enter sushu is \n");
scanf("%d",&a);
s=psushu(a);
if(s==1) printf("a is sushu\n");
else printf("s is not sushu\n");
}
求素数的程序,我这里写得那里有问题吗?为什么我运行后,输入素数后,返回结果不对呢?我输入7,8结果都是is not sushu,郁闷我初学望高手说详细点。
[解决办法]
#include<stdio.h>int psushu(int m) { int i=2,t; /*for(;i<=m;i++) */ for(;i<m; i++) { /*小于m就可以了, 下面if没有必要再判断i<m了*/ /*if(m%i==0&&i<m) */ if(m % i == 0) { break; } } if(m-i==0) t=1; else t=0; return(t);} void main() { int a,s; printf("enter sushu is \n"); scanf("%d",&a); s=psushu(a); if(s==1) printf("a is sushu\n"); else printf("s is not sushu\n"); }