| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2116 人关注过本帖
标题:百钱买百鸡
只看楼主 加入收藏
46067022
Rank: 1
来 自:湖南湘潭
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-1-11
收藏
得分:0 
我是这样做的,不知道对不对  
 main()
{
int x,j,z,n=0;
for(x=1;x<=20;x++)
  {for(j=1;j<=33;j++)
   {for(z=1;z<=100;z++)
   {
    if((x*5+j*3+z/3)==100&&(x+j+z==100))

   { printf("%d  %d  %d\n",x,j,z); n++;}} }}

 printf("%d\n",n);
 getch();}
2008-01-24 20:43
gdsing
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2008-1-24
收藏
得分:0 
楼上的思路是正确的。不过有些问题?
您程序返回的结果:
3  20  77
4  18  78
7  13  80
8  11  81
11  6  83
12  4  84
6


1、if((x*5+j*3+z/3)==100&&(x+j+z==100))
由于您全部变量都使用了int类型,所以(x*5+j*3+z/3)==100。会出现以下错误:
3*5+20*3+77/3==100 返回的值是真。

2、for(z=1;z<=100-x-j;z++)
小鸡的数量,可以直接用100-公鸡-母鸡得出
这样可以减少程序循环的次数,和增加程序的可读性。

[[italic] 本帖最后由 gdsing 于 2008-1-24 23:10 编辑 [/italic]]
2008-01-24 23:04
barnett022102
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-1-21
收藏
得分:0 
好深奥啊,看来还得继续学习
2008-01-25 00:29
zhaoruiqi1975
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-1-23
收藏
得分:0 
#include "stdio.h"
      main()
       { int x, y, z,i=0;
     
        for ( x=0;x<=20; x++)
               for(z=0;z<=99;z+=3)
            { y=100-x-z;
              if   (5*x+3*y+z/3)==100
              {printf ( "公鸡=%d ,母鸡=%d ,小鸡=%d\n",x ,y z);i++}
            }
                printf("%d\n",i)
         }
      这样免去类型的问题

[[italic] 本帖最后由 zhaoruiqi1975 于 2008-1-25 11:23 编辑 [/italic]]
2008-01-25 03:30
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
收藏
得分:0 
z%3==0

ACMer的QQ群:33741351
单片机QQ群:55130117
2008-01-25 08:53
devil_v6
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-10-29
收藏
得分:0 
14楼这个语句: for(z=0;z<=99;z++=3)
其中z++=3是做什么的,应该是z++吧?

2008-01-25 10:09
zhaoruiqi1975
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-1-23
收藏
得分:0 
应该是z=z+3
2008-01-25 11:19
快速回复:百钱买百鸡
数据加载中...
 
   



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

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