注册 登录
编程论坛 C++教室

小学生新人求高手解答问题!谢谢

liuyinuo2006 发布于 2017-07-28 23:57, 2576 次点击
我是小学生,暑假刚学习C++,遇到如下问题,求大神解决!谢谢!
写一个奇数能分解成三个质数的和程序。judge是判断一个数是不是质数的,主程序调用judge函数。

但在编译运行的时候,输入奇数9,为什么会出现两行n=3+3+3
怎么解决这个问题?为什么会出现两行同样的n=3+3+3?跪求解答!

#include<iostream>
#include<math.h>
using namespace std;
int judge(int x)
{
    int i;
    for(i=2;i<=x/2;i++)
    {
        if(x%i==0)
        {
            return 0;
        }
    }
    if(x!=1)
    return 1;
}
int main( )
{
int a,b,c,d,i1,i2,n;
cin>>n;
for(i1=2;i1<=n-1;i1++)
{   
    if(judge(i1)==1)
    {
        a=i1;
        b=n-a;
    }
    for(i2=2;i2<=b-1;i2++)
    {
        if(judge(i2)==1)
        {
            c=i2;
            d=n-c-a;
        if(judge(d)==1&&a<=c&&a<=d&&c<=d)
        {
            cout<<"n="<<a<<"+"<<c<<"+"<<d<<endl;
        }   
        }
    }
   
}
}
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2017-7-28 23:59编辑过]

6 回复
#2
rjsp2017-07-29 08:17
if 应该将 for 包含进去

btw:建议你换本书,这代码
#3
liuyinuo20062017-07-29 10:12
回复 2楼 rjsp
谢谢版主大人,我修改成功了!请你推荐一本初学者用的书。
#4
peng8806102017-07-29 15:16
C++  Primer  Plus   第六版,这本,个人认为还不错,就是篇幅比较长,将近1000页吧!
#5
yehuabao2017-08-03 16:16
回复 4楼 peng880610
1000页,这么厚。
#6
马迷芳草2017-08-03 17:51
回复 4楼 peng880610
谢谢推荐,新手学习了
#7
jinanman2017-09-22 17:06
先画个流程图
1