标题:初学者,从书上抄的!可以运行,但为什么得不到想要的结果??
只看楼主
Laughingsk
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-3-23
结帖率:0
已结贴  问题点数:2 回复次数:4 
初学者,从书上抄的!可以运行,但为什么得不到想要的结果??
题目:从键盘上输入一个大于等于6的偶数,将它表示成两个素数之和。如:6=3+2+1,8=3+5。然后我输入18,24的时候没反应,只有num=3+(另一个素数)   才能显示出来。。
#include <math.h>
#include <stdio.h>
#include <iostream>
using namespace std;
void main()
{
    int i,j,num;
    int p,q,flagp,flagq;
    std::cout<<"please input a plus integer:"<<endl;
    std::cin>>num;
    if(num%2!=0||num<=4)
        std::cout<<"dota error!please try again!"<<endl;
    else
    {
        p=1;
        do{
            p=p+1;
            q=num-p;
            flagp=1;
            flagq=1;
            
            for(i=2;i<=(int)(floor(sqrt((double)(p))));i++)
            {
                if(p%i==0);
                {
                    flagp=0;
                    break;
                }
            }
            j=2;
            while(j<=(int)(floor(sqrt((double)(q)))))
            {
                if(q%j==0)
                {
                    flagq=0;
                    break;
                }
                j++;
            }
        }
            while(flagp*flagq==0);
            std::cout<<num<<"="<<p<<"+"<<q<<endl;
    }


}
搜索更多相关主题的帖子: include please 
2013-03-23 15:36
gfchen1819
Rank: 2
等 级:论坛游民
帖 子:22
专家分:48
注 册:2013-2-20
得分:1 
你不知道你哪里错了吗?if(p%i==0);在这里。。。自己看。。。呵呵
2013-03-23 20:30
gfchen1819
Rank: 2
等 级:论坛游民
帖 子:22
专家分:48
注 册:2013-2-20
得分:0 
你知道为什么只有小数能显示,因为根本没进入循环,两个flag都还是初始值,
2013-03-23 20:32
laoniu89117
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2012-12-1
得分:1 
为什么我在Microsoft Visual Studio 2008怎么运行不了这个程序呢???(新手刚开始研究C++)
2013-03-23 21:10



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




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

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