鱼C论坛

 找回密码
 立即注册
查看: 1629|回复: 2

关于for循环嵌套

[复制链接]
发表于 2017-7-5 19:02:13 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 格格不入 于 2017-7-5 21:07 编辑

原题:我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
我写的代码(算法很笨,不要嘲笑)第一个for计算从第1到n-1个的素数和=sum1,第二个for计算从第1到m个的素数和=sum2,sum=sum2-sum1,即最终结果,然而比如输入3 和5 吧,计算的却是第3个到第 4 个素数和!在第二个scanf后加入m = (m+n-2);后(代码中注释掉的那个)能消除这个bug,百思不得其解,求大神指教?
#include<stdio.h>
int main()
{
 int n,m;
 scanf("%d",&n);
 scanf("%d",&m);
//m = (m+n-2);
    int sum = 0,sum1 = 0,sum2 = 0;
        int num;
        int count = 0;

for(num= 2; count < (n-1); num ++)
{ 
       int i; 
      _Bool flag = 1;
        for(i = 2; i < num ;i++)
        {
                if(num % i == 0 )
                {
                        flag = 0;
                }
    }   
                if(flag)
                { 
                count ++;
                        
                        sum1  += num;        
                }        
}                
        for(num= 2; count <= m ; num ++)
{ 
       int i; 
      _Bool flag = 1;
        for(i = 2; i <num ;i++)
        {
                if(num % i == 0 )
                {
                        flag = 0;
                }
    }   
                if(flag)
                { 
                count ++;
                
                        sum2  += num;        
                }        
} 
    sum = sum2 - sum1;
    printf("%d",sum);
        return 0;
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-5 19:51:54 | 显示全部楼层
在线等,急
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-5 20:48:23 | 显示全部楼层
30行初始条件加入count=0,这是第二个循环,计数器重新归零。
哼,等那么久没人答,还是我自己找出的bug,悬赏自己拿了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-28 08:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表