C语言:输出1-1000素数;

2025-04-07 08:51:26
推荐回答(3个)
回答1:

函数f有问题啊,如果是素数会返回,但不是素数的话,没有返回值啊。
建议
修改如下:
1. 函数f中
if(j>=n)
return n;
else
return 0;
2. 函数main的循环中
int result = f(i);
if( result )
printf("%5d",result);

回答2:

#include "stdio.h"
void main()
{int f(int n);
int i,k=0;
for(i=1;i<=1000;i++)
{if(!f(i))
{printf("%5d",i);
k++;
if(k%15==0)
printf("\n");
}
}
getch();
}
int f(int n)
{
int j;
for(j=2;j<=n-1;j++)
if(n%j==0)
break;
if(j>=n)
return 0;
else
return 1;
}

回答3:

#include "stdio.h"
void main()
{int f(int n);
int i,k=0,s;
for(i=1;i<=1000;i++)
{
s=f(i);
if(s)
printf("%5d",s);
k++;
if(k%15==0)
printf("\n");
}
}
int f(int n)
{
int j;
for(j=2;j<=n-1;j++)
if(n%j==0)
return 0;
if(j>=n)
return (n);

}
随便改了一下, 不知道是否符合要求. 你的程序,在调用函数后,返回到主函数没有得到判断.所以得不到想要的结果.