| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1255 人关注过本帖
标题:新手问题
只看楼主 加入收藏
46067022
Rank: 1
来 自:湖南湘潭
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-1-11
收藏
 问题点数:0 回复次数:8 
新手问题
#include <stdio.h>这是百钱百鸡的程序
main()
{int x,y,z;
   for(x=100;x>=0;x--)
     {
     for(y=100;y>=0;y--)
       {  
         for(z=100;z>=0;z--)   
          {
           if((x+y+z==100)&&(0.5*x+2*y+3*z==100))
           {z--;(请问这里的"Z--"是什么意思,在这起什么作有用!可不可以省略呢?)
           printf("x=%d  y=%d  z=%d\n",x,y,z);
           }
           continue;
          }
        }

[[italic] 本帖最后由 46067022 于 2008-1-24 21:41 编辑 [/italic]]
搜索更多相关主题的帖子: continue int main include 
2008-01-24 21:20
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
如果是穷举满足if 的x,y,z,那个z--我确实不懂~

樱花大战,  有爱.
2008-01-24 21:41
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
看不懂!
2008-01-24 21:51
幻姬LOVE
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-1-20
收藏
得分:0 
这个是不是就像
for(i=0;i<=100;i++)
for(j=0;j<=100;j++)
for(z=0;z<=100;z++)
不管如何先把这三个都列出来算啦不用动脑筋的方法啊
反正电脑不会累啊。。。
for(z=0;z<=100;z++)
应该可以换成
z=100-i-j;
这样的话对于计算机来说少个循环可以节省时间把
2008-01-24 21:54
nobush
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-1-10
收藏
得分:0 
顯然,這個程序是錯的!

z-- 完全不應該存在
2008-01-25 00:38
菜鸭
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2007-12-9
收藏
得分:0 
程序是错的
经过我的上机证实(TC),结果如下:
80    0     19
78    5      16
76     10       13
74     15       10
72      20        7
70      25         4
68      30         1
计算哪行都等于99。
后经删除,证实结果正确。Z值分别为20     17     14    11    8    5    2。后又觉得这程序有些麻烦,改动一下,各位大虾看看如何?请多批评指正。

#include<stdio.h>
int main()
{
   int  x,y,z;
   ror(x=100;x>=0;x--)
      for(y=50;y>=0;y--)
      {
         if(z=100-x-y,z>=0)
           if((x+y+z==100)&&(0.3*x+2*y+3*z==100)
           printf("x=%d,y=%d,z=%d\n",x,y,z);
     }
}
经上机测试,结果正确。
2008-01-25 00:51
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
x/2+2y+3z=100    记做1式
x+y+z=100    记做2式
由 1式×2-2式 得,3y+5z=100 记做3式,求3式的解等价与求3y=100(mod 5)的解,即3y=0(mod 5)的解
因为3,5互质,所以显然y为5的倍数。
将这个结论用于3式子,令y=5*k,k=0,1,2,...,则3*5*k+5*z=100 => z=20-3*k
代入2式得,x=100-y-z=100-5*k-(20-3*k)=80-2*k

综上,
x=80-2*k
y=5*k
z=20-3*k
为使x,y,z均有实际意义,0<=k<=20/3=6

所以,程序应该这么写
#include <stdio.h>

int main(int k)
{
    for(k=0;k<=6;k++){
        printf("%d %d %d\n",80-2*k,5*k,20-3*k);
    }
}
2008-01-25 02:34
gdsing
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2008-1-24
收藏
得分:0 
Z-- 真的不知有什么用?
下面给个参考:

main()
{
    int cocks,hens,chicks;
    float sum;
    for (cocks=1;cocks<=19;cocks++ )
    {
        for (hens=1;hens<=33;hens++ )
        {
            chicks=100-cocks-hens;
            sum=cocks*5.0+hens*3.0+chicks/3.0;
            if(sum==100) printf("公鸡:%2d 母鸡:%2d 小鸡:%2d\n",cocks,hens,chicks);
        }
    }
}

[[italic] 本帖最后由 gdsing 于 2008-1-25 03:25 编辑 [/italic]]
2008-01-25 03:23
devil_v6
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-10-29
收藏
得分:0 
太佩服7楼的做法了,

2008-01-25 10:16
快速回复:新手问题
数据加载中...
 
   



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

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