| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:大神快出没,for 嵌套里又有问题啦!
只看楼主 加入收藏
ouyangshit
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
帖 子:155
专家分:107
注 册:2014-10-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
大神快出没,for 嵌套里又有问题啦!
//输出1-100的素数
#include<stdio.h>
int main()
{
    int n=1,i=2;
    for(;n<=100;n++){
        for(;i<=n-1;i++){
            if(n%i!=0&&i>=n/2)
                printf("%d\n",n);
        }
    }
    return 0;
}
测试结果
输出了 3~100 ,明显不是素数。
第二个for里面我用了 i<=n-1 ,每次第二个for有第一个for里变量的时候就不行了
求大神,大神,大神!!!
2014-10-25 09:25
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:5 
帮你改了,你参考下
程序代码:
#include<stdio.h>

int main()
{
    int n=3,i=2;   
    printf("%d\n%d\n",1,2);  //1,2 不能写在里面,你看下,写在里面会直接跳过的
    for(;n<=100;n++){
        for(;i<=n-1;i++){
            if(n%i==0)    break;;            
        }
        if(i>=n) printf("%d\n",n);
    }

    return 0;
}
2014-10-25 10:02
ouyangshit
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
帖 子:155
专家分:107
注 册:2014-10-25
收藏
得分:0 
回复 2 楼 soulmate1023
不对,你的输出来是3的死循环。
我一开是的思路就错了。
我换了种表达,发现还是行不通
//输出1-100的素数
#include<stdio.h>
int main()
{
    int n=1,i=2;
    for(;n<=100;n++){
        for(;i<=n/2;i++){
            if(n%i==0) break;
        }
        if(i>n/2&&n!=1)
            printf("%d\n",n);
    }
    return 0;

}

测试输出的是 2,3,5,7,之后都是奇数
不满足素数
2014-10-25 10:30
dcl2014
Rank: 4
等 级:业余侠客
威 望:1
帖 子:58
专家分:273
注 册:2014-9-20
收藏
得分:15 
//这样子就行了 哦
#include<stdio.h>
int main()
{
   
    for(int n=1;n<=100;n++){
        for(int i=2;i<=n/2;i++){
            if(n%i==0)
                break;
        }
        if(i>n/2)
                printf("%d\n",n);
    }
    return 0;
}
2014-10-25 10:47
ouyangshit
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
帖 子:155
专家分:107
注 册:2014-10-25
收藏
得分:0 
回复 4 楼 dcl2014
是的,我自己也试了下,果然定义的值要放在括号里,不然下次循环就是导入的就是上个循环留下的值
谢谢。
2014-10-25 10:48
ouyangshit
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
帖 子:155
专家分:107
注 册:2014-10-25
收藏
得分:0 
回复 4 楼 dcl2014
哦对了,C语言里for()里不能用定义,定义要在括号外面。
在括号里面定义是 c#。。
还是c#方便些
2014-10-25 10:50
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:0 
回复 3 楼 ouyangshit
恩,我复制代码时弄错了,把i=2放在里面就好了,抱歉呀
2014-10-25 16:07
快速回复:大神快出没,for 嵌套里又有问题啦!
数据加载中...
 
   



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

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