雞兔同籠的c語言
A. c語言雞兔同籠
多次修改後面有個精減版的
#include <stdio.h>
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 <stdio.h>
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;
}
}
B. C語言雞兔同籠代碼
#include <stdio.h>
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. 用C語言編寫雞兔同籠問題
#include
int
main()
{
int
chicken,rabbit;//雞,兔子
int
m,n;//頭,腳
printf("m=,n=");
scanf("%d
%d",&m,&n);
for(chicken=0;chicken<=m;chicken++)//雞的數量從0到總頭數m嘗試
{
if(chicken*2+rabbit*4==n)//如果總腳數與輸入的總腳數相同
{
printf("%d
%d",chicken,rabbit);//分別輸出雞、兔
return
0;//停止程序
}
}
//for執行完表示找不到
printf("0");
return
0;
}
D. C語言編程雞兔同籠怎麼寫代碼
#include <stdio.h>
main()
{ unsigned long int a,b,c,d;
printf("這是一個用於算雞兔同籠的小程序(僅能輸入整數,使用回車鍵切換)
請輸入雞兔的總數");
scanf("%d",&a);
printf("
請輸入雞兔腳的總數");
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只
兔有%ld只",c,d);
else printf
E. 雞兔同籠的問題 c語言怎麼樣編寫
雞兔同籠是中國古代的數學名題之一。
大約在1500年前,《孫子算經》中就記載了這個有趣的問題。書中是這樣敘述的:
今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?
這四句話的意思是:
有若干只雞兔同在一個籠子里,從上面數,有35個頭,從下面數,有94隻腳。問籠中各有多少只雞和兔?
已知雞和兔的總數量為n,總腿數為m。輸入n和m,依次輸出雞和兔的數目,如果無解,則輸出「No answer」
程序如下:
#include <stdio.h> int main()
{ int T; int n; int m;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
if((m-2*n)>=0 && (m-2*n)%2==0 && (4*n-m)>=0 && (4*n-m)%2==0)
printf("%d %d ",(4*n-m)/2,(m-2*n)/2);
else
printf("No answer ");
} return 0;
}
(5)雞兔同籠的c語言擴展閱讀:
C語言新手編程注意事項:
1、書寫標識符時,忽略了大小寫字母的區別。
2、忽略了變數的類型,進行了不合法的運算。
3、將字元常量與字元串常量混淆。
4、忽略了「=」與「==」的區別。
5、忘記加分號。
6、多加分號。
7、輸入變數時忘記加地址運算符「&」。
8、輸入數據的方式與要求不符。
F. 雞兔同籠C語言
#include<stdio.h>
int main(){
int a,b,j,t;
scanf("%d %d",&a,&b);
for(j=0;j<=a;j++){
t=a-j;
if(j*2+t*4==b){
printf("%d %d",j,t);
return 0;
}
}
printf("Error\n");
return 0;
}
G. 雞兔同籠的問題 c語言怎麼樣編寫
輸入說明:
輸入為兩個正整數,第一個為
M
的值,第二個為
N
的值,用空格分隔。
輸出說明:
若有解,輸出兩個整數,用空格分隔,第一個代表雞的只數,第一個代表兔子的只數;若無解,直接輸出一個
0。
演算法:以列舉法寫程序,讓計算機從雞為0開始執行計算,利用循環語句計算大量次數後,得出最終結果。
具體程序為:
#include
int
main()
{int
chicken,rabbit;//雞,兔子
int
M,N;//頭,腳
printf("M=,N=");
scanf("%d
%d",&M,&N);
for(chicken=0;chicken<=M;chicken++)//雞的數量從0到總頭數M嘗試
{if(chicken*2+rabbit*4==N)//如果總腳數與輸入的總腳數相同
{printf("%d
%d",chicken,rabbit);//分別輸出雞、兔
return
0;//停止程序}}//for執行完表示找不到
printf("0");return
0;}
(7)雞兔同籠的c語言擴展閱讀:
雞兔同籠問題演算法有很多種,編寫出的程序不盡相同。下面列舉幾種演算法,編寫程序會更為簡單一些。
有若干只雞兔同在一個籠子里,從上面數,有35個頭,從下面數,有94隻腳。問籠中各有多少只雞和兔?
(1)假設全是雞:2×35=70(只),雞腳比總腳數少:94-70=24
(只)
兔子比雞多的腳數:4-2=2(只),兔子的只數:24÷2=12
(只),雞的只數:35-12=23(只)
假設全是兔子:4×35=140(只),兔子腳比總數多:140-94=46(只)
兔子比雞多的腳數:4-2=2(只),雞的只數:46÷2=23(只),兔子的只數:=35-23=12(只)(2)設雞有x只,兔有y只。
解得
參考資料:雞兔同籠(一種數學奧數題目)_網路