标题:求助帖,for循环判断后不执行for下{}中的语句直接开始循环,循环完才往{}中 ...
只看楼主
yppph
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2022-11-9
结帖率:0
已结贴  问题点数:10 回复次数:7 
求助帖,for循环判断后不执行for下{}中的语句直接开始循环,循环完才往{}中走
#include <stdio.h>
#include <math.h>
int is_prime(int n)
{
    int j = 0;
    for (j = 2; j <= sqrt(n); j++)
    {
        if (n % j == 0)
            return 0;
    }
    return 1;
}
int main()
{
    int i = 0;
    for (i = 1; i<=200; i++);//程序在这个位置直接开始循环
    {
        if (is_prime(i) == 1)//进到这个位置直接是201了,程序没有任何错误和警告,目前看来就是程序没有吧for下{}中的内容看到for循环中的一部分,但我不知道为什么
            printf("%d", i);
    }
    return 0;
}
搜索更多相关主题的帖子: 循环 执行 int for 循环判断 
2022-11-09 01:48
小白级的小黑
Rank: 2
等 级:论坛游民
帖 子:30
专家分:32
注 册:2022-3-19
得分:5 
要不加个if语句,if里嵌个continue

不求知道一切,尽心发现一件。
2022-11-09 07:43
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
for (i = 1; i<=200; i++);//程序在这个位置直接开始循环
for (i = 1; i<=200; i++) //程序在这个位置直接开始循环
2022-11-09 08:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include <stdio.h>
#include <stdbool.h>

bool is_prime( int n )
{
    if( n == 2 )
        return true;
    if( n<2 || n%2==0 )
        return false;

    for( int i=3; i<=n/i; i+=2 )
    {
        if( n%i == 0 )
            return false;
    }
    return true;
}

int main( void )
{
    for( int i=0; i!=201; ++i )
    {
        if( is_prime(i) )
            printf( "%d\n", i );
    }
}
2022-11-09 08:34
yppph
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2022-11-9
得分:0 
回复 楼主 yppph
找到问题了了就是for()后多了一个分号才导致的。如果加continue也没用吧,那个分号不去除的话循环不结束根本不进if语句呀,害。我自己写完了运行不出来,我还去csdn复制了一篇运行也是一样的结果,就没自信看哈哈
2022-11-09 13:49
yppph
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2022-11-9
得分:0 
回复 2楼 小白级的小黑
谢谢大佬,怪自己不细心。
2022-11-09 13:49
yppph
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2022-11-9
得分:0 
回复 4楼 rjsp
明白了大佬,还有几个问题请教您。在实际中像您这样写的话会比我那个运算速度或者其他方面优化一点吗,虽然i+=2省了一部分事儿,但是前面也多了一个判断的部分。if (is_prime(i)),在函数中我用0代替false,用1代替ture也能输出。在实际上会有区别吗
2022-11-09 14:07
小白级的小黑
Rank: 2
等 级:论坛游民
帖 子:30
专家分:32
注 册:2022-3-19
得分:0 
回复 7楼 yppph
在C语言中|非0即真|。用负数,返回的也是‘真’

不求知道一切,尽心发现一件。
2022-11-09 15:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510589-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057743 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved