| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 556 人关注过本帖
标题:关于whlile问题
只看楼主 加入收藏
gonglong
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-8-4
结帖率:0
收藏
已结贴  问题点数:10 回复次数:6 
关于whlile问题
题目是;从1到33中取6个不同的数是它们等于102,输出这6个数!
#include<stdio.h>
main()
{int a,b,c,d,e,f;
while(1=<a<=33&&1=<b<=33&&1=<c<=33&&1=<d<=33&1=<e<=33&&1=<f<=33&&a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&b!=c&&b!=d&&b!=e&&b!=f&&c!=d&&c!=e&&c!=f&&d!=e&&d!=f&&e!=f)
102==a+b+c+d+e+f;
printf("%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f);
}
2011-08-05 11:55
落叶深蓝色
Rank: 8Rank: 8
来 自:山东
等 级:蝙蝠侠
帖 子:319
专家分:807
注 册:2010-12-8
收藏
得分:2 
写了个容易理解的,六个for
程序代码:
#include <iostream>
using namespace std;
int main()
{
    int a,b,c,d,e,f,count=0;
        for(a=1;a<=28;a++)
        {
            for(b=a+1;b<=29;b++)
            {
                for(c=b+1;c<=30;c++)
                {
                    for(d=c+1;d<=31;d++)
                    {
                        for(e=d+1;e<=32;e++)
                        {
                            for(f=e+1;f<=33;f++)
                            {
                                if(102==a+b+c+d+e+f)
                                {
                                    cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<endl;
                                    count++;
                                }

                            }
                        }
                    }
                }
            }
        }
        cout<<count<<endl;
        return 0;
}
20000多个
2011-08-05 12:22
我也不免
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:8
专家分:38
注 册:2011-4-30
收藏
得分:2 
#include<stdio.h>
main()
{int a,b,c,d,e,f;
do
  {for(a=1;a<=33;a++)
    for(b=1;b<=33;b++)
      for(c=1;c<=33;c++)
        for(d=1;d<=33;d++)
         for(e=1;e<=33;e++)
           for(f=1;f<=33;f++)
             if(102==a+b+c+d+e+f)
              printf("%d,%d,%d,%d,%d,%d",a,b,c,d,e,f);}
while(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&b!=c&&b!=d&&b!=e&&b!=f&&c!=d&&c!=e&&c!=f&&d!=e&&d!=f&&e!=f);
printf("%d,%d,%d,%d,%d,%d",a,b,c,d,e,f);
}
看看有用没?

疯狂,我的追求!
2011-08-05 14:03
Magic_Q
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:23
专家分:102
注 册:2011-7-27
收藏
得分:2 
这道题目其实还是有技巧的,穷举法不太明智.

我提示一下:
102 = 6 * 17;
1 + 33 = 2 * 17

所以可以想想,为什么都是这么有特征的数字?
2011-08-05 21:57
gonglong
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-8-4
收藏
得分:0 
谢谢大家!,我主要事想问上面那个程序错在哪里?
2011-08-07 17:19
韩54521风
Rank: 4
等 级:业余侠客
帖 子:75
专家分:212
注 册:2011-6-11
收藏
得分:2 
你的程序错误在下面红色的部分
#include<stdio.h>
main()
{int a,b,c,d,e,f;
while(1=<a<=33&&1=<b<=33&&1=<c<=33&&1=<d<=33&1=<e<=33&&1=<f<=33
&&a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&b!=c&&b!=d&&b!=e&&b!=f&&c!=d&&c!=e&&c!=f&&d!=e&&d!=f&&e!=f)//大于等于好,你写对了>=    小于等于号就不对了,应该是<=而不是=<
102==a+b+c+d+e+f;     //这个应该是用来判断的吧,就这么出现会是什么意思呢,你这个循环估计不会算出正确的结果            
 printf("%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f);
}
2011-08-11 13:51
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:2 
mark
2011-08-11 14:03
快速回复:关于whlile问题
数据加载中...
 
   



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

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