| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 228 人关注过本帖
标题:c语言多重循环
只看楼主 加入收藏
frecklesss
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2020-3-17
结帖率:100%
  已结贴   问题点数:10  回复次数:21   
c语言多重循环
哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。输入两个整数m,n(),将m,n之间的偶数表示成两个素数之和。例如偶数M=a+b,其中a和b是素数,且a<b,a是所有成立的等式中最小的素数(例如:10=3+7,10=5+5,则只保留前面的式子)。
示例:
输入格式:8 10
输出格式:8=3+5;10=3+7;(注意:式子中所有符号均为英文状态下的符号)

以下是我的代码:

程序代码:
#include<stdio.h>
int main(){
    long int m,n,a,b,c,j;    
    scanf("%ld %ld" , &m,&n);    
    b=m;    
    for(a=3;a<c;a++)    {   
         b=m-a; 
         c=n-a;       
         for(j=2;j<=a-1;j++)   {    
            if(a%j==0)        
            break;   
        }   
        if(j<a)continue;       
        for(j=2;j<=b-1;j++)   {    
           if(b%j==0)        
           break;   
        }   
        if(j<b)continue;  
        for(j=2;j<=c-1;j++)   {    
           if(c%j==0)        
           break;   
        }   
        if(j<c)continue; 
        printf("%ld=%ld+%ld;%ld=%ld+%ld;",m,a,b,n,a,c);   
        break;    
    }    
    return 0;
}


可是我交作业的时候就会提示这个,怎么解决呢?
附件: 您没有浏览附件的权限,请 登录注册
搜索更多相关主题的帖子: c语言 for 循环 素数 break 
6 天前 09:54
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:346
帖 子:7136
专家分:41576
注 册:2011-1-18
  得分:2 
我拿你的代码编译,编译就失败

int main(){
    long int m,n,a,b,c,j;   
    scanf("%ld %ld" , &m,&n);   
    b=m;   
    for(a=3;a<c;a++)    {  // 这里的c未初始化
6 天前 10:13
forever74
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:CC
等 级:贵宾
威 望:26
帖 子:1422
专家分:2854
注 册:2007-12-27
  得分:0 
仔细审题,重新写

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
6 天前 10:29
frecklesss
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2020-3-17
  得分:0 
回复 2楼 rjsp

我可以编译呢
附件: 您没有浏览附件的权限,请 登录注册
6 天前 11:41
frecklesss
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2020-3-17
  得分:0 
回复 3楼 forever74
是判断素数那里出错了吗
6 天前 11:42
frecklesss
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2020-3-17
  得分:0 
回复 2楼 rjsp
程序代码:
#include<stdio.h>
int main(){
    int m,n,a,b,c,j;    
    scanf("%d %d",&m,&n);       
    for(a=3;a<c;a++)    {          
         for(j=2;j<=a-1;j++)   {    
            if(a%j==0)        
            break;   
        }   
        b=m-a; 
        c=n-a;       
        for(j=2;j<=b-1;j++)   {    
           if(b%j==0)        
           break;   
        }    
        for(j=2;j<=c-1;j++)   {    
           if(c%j==0)        
           break;   
        }   
        printf("%d=%d+%d;%d=%d+%d;",m,a,b,n,a,c);   
        break;    
    }    
    return 0;
}


改了一下,还是有问题。。。
6 天前 12:32
frecklesss
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2020-3-17
  得分:0 
回复 7楼 frecklesss
不是上面的,是这个:

程序代码:
#include<stdio.h>
int main(){
    int m,n,a,b,c,j;    
    scanf("%d %d",&m,&n);    
    b=m;
    c=n;    
    for(a=3;a<c;a++)    {          
         for(j=2;j<=a-1;j++)   {    
            if(a%j==0)        
            break;   
        }   
        b=m-a; 
        c=n-a;       
        for(j=2;j<=b-1;j++)   {    
           if(b%j==0)        
           break;   
        }    
        for(j=2;j<=c-1;j++)   {    
           if(c%j==0)        
           break;   
        }   
        printf("%d=%d+%d;%d=%d+%d;",m,a,b,n,a,c);   
        break;    
    }    
    return 0;
}
6 天前 12:36
叶纤
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:598
专家分:732
注 册:2019-11-22
  得分:0 
我编译器是正确的啊

古代娘娘打进冷宫时的心境是什么样的呢?
6 天前 12:52
forever74
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:CC
等 级:贵宾
威 望:26
帖 子:1422
专家分:2854
注 册:2007-12-27
  得分:2 
按题目要求,如果输入 5 101
程序应该输出从6到100的48个偶数的表达式。
所以需要的改动很大,不如重新写。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
6 天前 12:59
frecklesss
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2020-3-17
  得分:0 
回复 9楼 forever74
懂了,意思是如果m=a+b,a和b是要程序算出来不是我写出来,是这个意思吗?
可是我不知道怎么做救救孩子
6 天前 13:04
快速回复:c语言多重循环
数据加载中...
 
   



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

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