u011010440
TonyGJY
采纳率33.3%
2018-10-29 03:49 阅读 424
已采纳

C语言问题。。。。。。。。。。。。。。。。。。。。。。。。

为什么我这段程序没有输出

#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;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    qq_40946921 Italink 2018-10-29 04:30

    你把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;
    }
    
    点赞 1 评论 复制链接分享

相关推荐