❶ c程序,買雞問題

程序運行結果沒有問題,是不是因為在運行過程中chick出現負數的原因回啊,將
for (cock = 0; cock <= n; cock++)
{
for (hen = 0; hen <= n; hen++)
改為
for (cock = 0; cock <= n/5; cock++)
{
for (hen = 0; hen <= n/3; hen++)
試試。答

c語言n錢買n雞問題

先把我改過的代碼貼給你:

#include<stdio.h>
constintWeng=15;
constintMu=9;
constintChu=1;
intmain()
{
intiGold,iWeng,iMu,iChu,iFangAn=0,t=0;
scanf("%d",&iGold);
for(iChu=3;iChu<=iGold-1;iChu+=3){
for(iMu=1;iMu<=iGold-iChu-1;iMu++){
iWeng=iGold-iChu-iMu;
if(iGold*3==iWeng*Weng+iMu*Mu+iChu*Chu)
iFangAn++;
}
}
printf("%d",iFangAn);
return0;
}

你的問題在於那個判斷語句。總金、雞翁價、雞母價都應是原價的3倍。

至於循環,我改成了雛雞3倍遞增,因為這個題目不存在浮點數,其他的問題都不大。

❸ c語言解決百錢買雞問題

chicks小雞,cocks公雞,hens

n是錢,因為1錢可買3小雞,所以小雞數對應錢數就是:chicks=3*n

外層遍歷:內買小雞的錢,從0遍歷到33(容33塊就99個小雞了,明顯用不了這么多,但作者為了保險吧)
內層遍歷:買母雞的個數,從0遍歷到33個(33個母雞也99塊,與上面意圖相同,盡量遍歷到境界點,雖然有點不科學,但如果問題有解,在條件成立時加個跳出,也不礙事)

內層遍歷的時候:cocks=100-hens-chicks; 公雞=100-母雞-小雞,(確保三種雞加起來是100)

if(5*cocks+3*hens+n==100&&cocks>=0) 意思是:所有的錢加起來是100並且公雞個數不為負數

printf("%d %d %d\n",cocks,hens,chicks); //打完收工
hens++;//自增
}
n++;//自增

❹ c語言百元買百雞問題

其實很自簡單 你的程序沒有錯 是題目看錯了 #include<stdio.h> void main() { int a,b,c,i=0; printf("百元買百雞方案\n"); printf("________________\n"); printf(" 母雞 公雞 小雞\n"); for(a=1;a<100;a++) for(b=1;b<100;b++) { c=100-a-b; if(c%3!=0) continue; if((a*5+b*3+c/3)==100) { i=i+1; printf("方案:%d %d %d %d",i,a,b,c); printf("\n"); } } } 運行結果為 百元買百雞方案 ________________ 母雞 公雞 小雞 方案:1 4 18 78 方案:2 8 11 81 方案:3 12 4 84 Press any key to continue
點贊哦

❺ c語言百雞問題

/*******************************************************************************
*百錢買百雞問題
*問題:公元錢五世紀,我國古代數學家張丘建在《算經》一書中提出了「百雞問題」:
* 雞翁一值錢五,雞母一值錢三,雞雛三值錢一。
* 百錢買百雞,問雞翁、雞母、雞雛各幾何?
********************************************************************************/

#include "stdio.h"
#include "conio.h"

int main()
{
int male;
int female;
int baby;

for(male=0;male<100/5;male++)
for(female=0;female<100/3;female++)
for(baby=0;baby<100;baby+=3)
{
if(male+female+baby == 100 && 5*male+3*female+baby/3 == 100)
printf(" cock hen baby\n %d %d %d",male,female,baby)
}
printf("Hello, world\n");
getch();
}

❻ C語言(百錢買百雞的問題)

百錢百雞問題中國古代數學家張丘建在他的《算經》中提出了著名的「百錢買百雞問題」:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問翁、母、雛各幾何?
*題目分析與演算法設計設雞翁、雞母、雞雛的個數分別為cocks(x),hens(y),chicks(z),題意給定共100錢要買百雞,若全買公雞最多買20隻,顯然cocks的值在0~20之間;
同理,hens的取值范圍在0~33之間,可得到下面的不定方程: 5x+3y+z/3=100 x+y+z=100 所以此問題可歸結為求這個不定方程的整數解。由程序設計實現不定方程的求解與手工計算不同。在分析確定方程中未知數變化范圍的前提下,可通過對未知數可變范圍的窮舉,驗證方程在什麼情況下成立,從而得到相應的解。
程序解釋
main()

{
int cocks=0,hens,chicks;
while (cocks<=19) //公雞只數小於19
{hens=0;
while(hens<=33) //母雞小於33隻
{chicks=100-cocks-hens;
if (5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf("%d %d %d\n",cocks,hens,chicks);
hens++;
}
cocks++;
}
}

*總是的進一步討論這類求解不定方程總理的實現,各層循環的控制變數直接與方程未知數有關,且採用對未知數的取值范上窮舉和組合的方法來復蓋可能得到的全部各組解。能否根據題意更合理的設置循環控制條件來減少這種窮舉和組合的次數,提高程序的執行效率,請讀者考慮

❼ C語言《百錢買雞問題》寫出程序並解釋下謝謝

#include
<stdio.h>
void
main(void)
{

int
x,y,z;
/*
定義三種雞的數量*/

for(x
=
1;x
<
50;x++)
/*這里用雙重循環式為了讓電腦用窮舉法來窮舉答案,符合就輸出否版則繼續循環*/

for(y
=
1;y
<
50;y++)

{

z
=
100
-
x
-
y;
/*每一次循權環都要初始化小雞z的數量*/

if(5*x+2.5*y+z/3.0
==
100) /*這里用if語句是因為要確保這個問題有正確答案,找到後輸出,否則繼續循環*/

printf("x=%d
y=%d
z=%d",x,y,z);

}

getch();
}

給個滿意吧
程序是對的
但是我不知道說得夠不夠清楚。

❽ c語言問題 百元買百雞問題

#include <stdio.h>
void main()
{
int mj,gj,xj,n=0;
printf(" 百元買百雞問題求解方案專\n") ;
printf(" ----------------------\n") ;
printf("\t母雞\t公雞屬\t小雞\n") ;
for(mj=0;mj<=100;mj++)
for(gj=0;gj<=100;gj++)
{
xj=100-mj-gj;
if(xj*0.5+mj*3+gj*2==100)//1
{
n++;///2
printf("方案%d:\t%d\t%d\t%d\n",n,mj,gj,xj);
}
}
}

❾ C語言買雞問題

scanf("%d %d\n",&a,&b); 改成 scanf("%d %d",&a,&b); 就不需要多輸那個0了

❿ 第二題,買小雞問題,c語言如何編程

公雞母雞小雞三重for循環即可。

代碼:

#include<stdio.h>

intmain()
{
intcock,hen,chick;
for(cock=1;cock*5<100;cock++)
{
for(hen=1;hen*3<100;hen++)
{
for(chick=1;chick<100;chick++)
{
if(cock*5+hen*3+chick==100)
{
printf("公雞%d只,專母雞%d只,小雞屬%d只。 ",cock,hen,chick);
}
}
}
}
return0;
}