结果不对请看看那错了

来源:百度知道 编辑:UC知道 时间:2024/07/07 22:11:41
int ss(int sh)
{
int i,flat=1;
for(i=2;i<=sh/2&&flat==1;i++)
if(sh%i==0)
{flat=0;
return(flat);}
}

main()
{ int num;
int ss();
scanf("shu%d",&num);

if(ss(num)==0)
printf("numisnot shushu");

else
printf("num is shushu");
getch();
}

ss函数只在参数是非素数的情况下才会返回ret,参数是素数时不会返回任何值,应该在函数的后面插入 return ret;语句。
int ss(int sh)
{
int i,flat=1;

for(i=2;i<=sh/2&&flat==1;i++)
if(sh%i==0)
{
flat=0;
return(flat);
}

return flat;
}

void main()
{
int num;
int ss(int);
scanf("shu%d",&num);

if(ss(num)==0)
printf("num is not shushu\n");

else
printf("num is shushu\n");
getchar();
}

找素数
#include <stdio.h>
#include <math.h>

void main()
{
int m,i,k;
printf("Please input a number:");
scanf("%d",&m);
for (int j = 1; j <= m; j++)
{
k = sqrt(j);
for (i = 2; i <= k; i++)
if(j%i == 0) break;
if(i >= k+1)
printf("%d is a prime number\n",j);
else
printf("%d is not a prime n