当前位置: 代码迷 >> C语言 >> 百钱买百鸡引出的问题(求助)
  详细解决方案

百钱买百鸡引出的问题(求助)

热度:531   发布时间:2004-05-15 23:43:00.0
百钱买百鸡引出的问题(求助)

我记得我们老师说过一个题,题是这样的:用一百块钱买一百只鸡,大鸡5块钱一只,子鸡3块钱一只,小鸡1块钱3只.

老师说用C语言只能得出一个结果,而用别的计算机语言可以得出三种结果,请问这是算法的问题,还是语言的问题?

请顺便把这段程序写出来,谢谢!

搜索更多相关的解决方案: 计算机语言  C语言  

----------------解决方案--------------------------------------------------------

For gongji = 1 To 20 For muji = 1 To 30 For xiaoji = 1 To 99 If gongji + muji + xiaoji = 100 And gongji * 5 + muji * 3 + xiaoji / 3 = 100 Then Print "公鸡:" & gongji Print "母鸡:" & muji Print "小鸡:" & xiaoji End If Next Next Next

这是VB代码,C语言的一样


----------------解决方案--------------------------------------------------------

我是初学者,看了以上的VB我写了下面的C,见笑了:

#include<conio.h> #include<stdio.h> main() { int a,b,c,k=1; clrscr(); for(a=1;a<20;a++) for(b=1;b<33;b++) for(c=1;c<100;c++) { if(5.0*a+3.0*b+c/3==100&&a+b+c==100) printf("The %d: a=%-2d,b=%-2d,c=%-2d\n",k++,a,b,c); } getch(); }

运行结果为:

The 1: a=3 ,b=20,c=77 The 2: a=4 ,b=18,c=78 The 3: a=7 ,b=13,c=80 The 4: a=8 ,b=11,c=81 The 5: a=11,b=6 ,c=83 The 6: a=12,b=4 ,c=84

[此贴子已经被作者于2004-05-16 14:28:12编辑过]


----------------解决方案--------------------------------------------------------

上面答案虽然有好多,但是仔细看一下题意就知道了,小鸡应是3的倍数


----------------解决方案--------------------------------------------------------

将c改成double型


----------------解决方案--------------------------------------------------------

我没老师教过,我不知道为什么,感觉3楼应用整数同时加上c%3==0得到三个答案,

可楼主说的c语言只有一个结果? (写错拉,对不起)

[此贴子已经被作者于2004-05-17 09:36:58编辑过]


----------------解决方案--------------------------------------------------------
"我没老师教过,我不知道为什么,感觉3楼应用整数同时加上b%3==0得到三个答案"?????
----------------解决方案--------------------------------------------------------

这和b是没有关系的

还是那句话

将c改成double型


----------------解决方案--------------------------------------------------------
写错拉,应c%3==0!
----------------解决方案--------------------------------------------------------

#include<conio.h> #include<stdio.h> void main() { int a,b,c,k=1; clrscr(); for(a=0;a<20;a++) for(b=0;b<33;b++) for(c=0;c<100;c=c+3) { if(5.0*a+3.0*b+c/3==100&&a+b+c==100) printf("The %d: a=%-2d,b=%-2d,c=%-2d\n",k++,a,b,c); } getch(); }

是不是每一种都要有一个,那么把前面的=0,改为=1,是不是就可以了????

直接加三不就少了20*33*(100/3*2)次循环了么??


----------------解决方案--------------------------------------------------------
  相关解决方案