为什么我这段程序没有输出
#include
#include
int Isprime(int x);
int main()
{
int i;
for(i=1;i<100;i++) //判断100以内的素数
{
if(Isprime(i))
printf("%d\n",i);
printf("\n");
return 0;
}
}
int Isprime(int x)
{
int i,SquareRoot;
if(x<=1)
return 0;
SquareRoot = (int)sqrt(x);
for(i=2;i<=SquareRoot;i++)
{
if(x%i == 0)
return 0;
}
return 1;
}
你把return放到for循环里,第一次循环就结束程序,肯定没输出啊,
还有个小问题是打印了很多空行
修改后如下
#include<iostream>
using namespace std;
int Isprime(int x);
int main()
{
int i;
for (i = 1; i<100; i++) //判断100以内的素数
{
if (Isprime(i))
printf("%d\n", i);
}
return 0;
}
int Isprime(int x)
{
int i, SquareRoot;
if (x <= 1)
return 0;
SquareRoot = (int)sqrt(x);
for (i = 2; i <= SquareRoot; i++)
{
if (x%i == 0)
return 0;
}
return 1;
}