當前位置:首頁 » 編程語言 » c語言解決雞兔同籠
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言解決雞兔同籠

發布時間: 2022-01-30 21:36:52

c語言雞兔同籠代碼

#include
main()
{
unsigned
long
int
a,b,c,d;
printf("這是一個用於算雞兔同籠的小程序(僅能輸入整數,使用回車鍵切換)\n請輸入雞兔的總數");
scanf("%d",&a);
printf("\n請輸入雞兔腳的總數");
scanf("%d",&b);
if(b%2
!=
0)
{
printf("輸入的雞兔腳的總數有錯誤!");
return
0;
}
c=(4*a-b)/2;
//
雞的數目
d=a-c;
//
兔的數目
if(c*2+d*4==b)
printf("雞有%ld只\n兔有%ld只",c,d);
else
printf("同學,我看你給的數有錯吧!");
}
///首先雞兔同籠的問題是
輸入的是總頭數和總腳數,我不懂你程序中怎麼就輸入一個腳數。
///你計算的公式,看不懂,根據什麼原理計算的??

⑵ C語言編寫雞兔同籠的問題

#include<stdio.h>
int main()
{
int a,b,M,N;
printf("請輸入雞兔的總頭數\n");
scanf_s("%d",&a);
printf("請輸入雞兔的總腿數\n");
scanf_s("%d",&b);
scanf_s("%d",&M);
M=(2*a)-(b/2);
printf("雞的數目為%d只");
scanf_s("%d",&N);
N=(b/2)-(a);
printf("兔的數目為%d只");
return 0;
}
我目前是C語言的新手,目前只會做這一類。如果用的是VS(visual studio)編程的話,scanf後必須加_s,這是VS獨有的,其他的編程軟體隨意。

⑶ 用C語言編寫雞兔同籠問題

intm=0,n=0;
inta,b;
printf("總頭數");
scanf("%d",&n);
printf("總腿數");
scanf("%d",&m);
b=(m-2n)/2
a=n-b;
if(a+b==n&&2*a+4*b=m&&a>=0&&b>=0)
printf("雞和兔各%d,%d只",a,b);
else
printf("Noanswer");

⑷ 用C語言怎麼打雞兔同籠

#include<stdio.h>

int main()

{ int f,i;

scanf("%d",&f);

printf("雞 兔 ");

for(i=1;i<f/4;i++)

printf("%d %d ",(f-4*i)/2,i);

return 0;

}

⑸ c語言解決雞兔同籠問題

多次修改後面有個精減版的
#include

void
main(
)
{
int
ret
=
0;
//
表示最後一個printf的返回值
while(1)
{
int
h,f,c,r;
printf("請輸入頭的數目:");
scanf("%d",&h);
printf("\n請輸入腳的數目(必須為偶數):");
scanf("%d",&f);
while(f%2!=0
&&
f
!=
0
)
//加上一個輸入0值繼續的條件,這里的while
循環可以不要了,後面的兩個循環,再加上if的判斷條件,已經解決了這里不為偶數的問題(個人認為,驗證過了)
{
printf("\n輸入腳的數目為奇數,請重新輸入腳的數目(必須偶數):");
scanf("%d",&f);
}
while(f<2*h
&&
h!=
0)//同上
{
printf("\n輸入腳的數目過小,請輸入腳的數目(必須偶數):");
scanf("%d",&f);
/*
在這里加上
if(
f
%2
!=
0)
continue;
*/
/*作用是輸入的不是偶數,就要重新輸入
*/
}
while(f>4*h&&h!=0)//同上
{
printf("\n輸入腳的數目過大,請輸入腳的數目(必須偶數):");
scanf("%d",&f);
/
*
if(
f
%
2
!=
0)
continue;
*/
/*作用同上*/
}
for(c=0;c<=h;c++)
for(r=1;r<=h;r++)
//這句改成:for(r=0;
r
<=
h-c;
r++)好點,減少的循環的次數,加了效率
{
if(c+r==h&&2*c+4*r==f)
ret
=
printf("\n雞的數目為%d,兔子的數目為%d\n\n",c,r);
}
if(
ret
==
39)
/*作用是輸入一次成功後,結束大循環,
可以不要*/
break;
}
}
/***********************************************************************/
#include

void
main(
)
{
int
ret
=
0;
//
表示最後一個printf的返回值
while(1)
{
int
h,f,c,r;
printf("請輸入頭的數目:");
scanf("%d",&h);
printf("\n請輸入腳的數目(必須為偶數):");
scanf("%d",&f);
while(f%2!=0
&&
f
!=
0
&&
h
!=
0)
//這里的不等於的條件可以不加
{
printf("\n輸入腳的數目為奇數,請重新輸入腳的數目(必須偶數):");
scanf("%d",&f);
if(
f
>
4h
||
f
<
2h)
continue;
}
for(c=0;c<=h;c++)
for(r=1;r<=h;r++)
//這句改成:for(r=0;
r
<=
h-c;
r++)好點,減少的循環的次數,加了效率
{
if(c+r==h&&2*c+4*r==f)
ret
=
printf("\n雞的數目為%d,兔子的數目為%d\n\n",c,r);
}
if(
ret
==
39)
/*作用是輸入一次成功後,結束大循環,
可以不要*/
break;
}
}

⑹ 怎麼用c語言編譯一個雞兔同籠的問題

#include <stdio.h>

int main()
{
int a,b;
int j,t;
printf("請輸入有多少個頭?\n");
scanf("%d",&b);
printf("請輸入有多少只腳?\n");
scanf("%d",&a);
j=(b*4-a)/2;
t=b-j;
printf("雞的只數是%d,兔的只數是%d\n",j,t);

return 0;

}
這樣?

⑺ 用C語言解決雞兔同籠問題 雞兔共有35頭 雞兔腳共有94足 用二元一次方程解決

#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int i;
int j;
for(i =1;i < 35;i++){
for(j=1;j < 35;j++){
if(i*2 + j*4 == 94){
printf("ji:%d tu:%d\n",i,j);
}
}
}
return 0;
}

⑻ c語言演算法,雞兔同籠

已知雞和兔的總數量為n,總腿數為m,輸入n和m,依次輸出雞的數目和兔的數目。如果無解則輸出No answer。

輸入:

兩個整數b和m,如上所述。

輸出:

雞的數目和兔的數目。

我們假設a = 雞只數,b = 兔只數(兔的腳數×總只數-總腳數)÷(兔的腳數-雞的腳數)=雞的只數,a = ( 4*n - m )/2。

總只數-雞的只數=兔的只數,b = n - a。

具體代碼:

#include "stdio.h"

int main() {

int a,b,n, m;

// a雞的數量

// b兔的數量

// n雞兔總數

// m總腳數

scanf("%d %d", &n,&m);

a = (4 * n - m) / 2;//算出雞的數量

b = n - a;//算出兔的數量

if (a <= 0 || b <= 0) {

//結果小於等於0,答案不成立,無解

printf("No answer");

} else {

//結果大於0

printf("%d %d", a, b);

}

return 0;

}

(8)c語言解決雞兔同籠擴展閱讀:

雞兔同籠解題思路:如果先假設它們全是雞,於是根據雞兔的總數就可以算出在假設下共有幾只腳,把這樣得到的腳數與題中給出的腳數相比較,看看差多少,每差2隻腳就說明有1隻兔,將所差的腳數除以2,就可以算出共有多少只兔。

概括起來,解雞兔同籠題的基本關系式是:兔數=(實際腳數-每隻雞腳數×雞兔總數)÷(每隻兔子腳數-每隻雞腳數)。類似地,也可以假設全是兔子。