⑴ 用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
&&
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語言解決雞兔同籠問題
多次修改後面有個精減版的
#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語言怎麼樣編寫
1、編寫思路如下:
假設有x只雞,y只兔,兩者一共有m只頭,n只腳,則有:
x + y = m ; 2 * x + 4 * y = n ;
即得到關系式,x + 2y =n/2 , x + y = m , y = n/2 - m , x = 2 * m - n/2。
2、代碼及注釋如下:
#include<stdio.h>
main ( )
{
int a, b ;
printf("請分別輸入動物頭與腳的數目: ");
scanf("%d%d",&a,&b); //頭數為a, 腳數目為b;
printf("一共有%d只雞,%d只兔子 ",b/2-a,2 * a - b/2);
}
(4)用c語言編譯雞兔同籠問題擴展閱讀:
常見雞兔同籠類型問題:
1、班主任張老師帶五年級(2)班50名同學栽樹,張老師栽5棵,男生每人栽3棵,女生每人栽2棵,總共栽樹120棵,問幾名男生,幾名女生?
2、大油瓶每瓶裝4千克,小油瓶2瓶裝1千克,現有100千克油裝了共60個瓶子。問大小油瓶各多少個?
3、小毛參加數學競賽,共做20道題,得67分,已知做對一道得5分,不做得0分,錯一題扣1分,又知道他做錯的題和沒做的同樣多。問小毛做對幾道題?
4、有蜘蛛,蜻蜓,蟬三種動物共18隻,共有腿118條,翅膀20對(蜘蛛8條腿;蜻蜓6條腿,2對翅膀;蟬6條腿,1對翅膀),三種動物各幾只?
⑸ C語言中雞兔同籠問題的代碼
#include<stdio.h>
voidmain()
{inta,b,c,d;
printf("這是一個用於算雞兔同籠的小程序 請輸入雞兔的總數");
scanf("%d",&a);
if(a>=0)
{
printf(" 請輸入雞兔腳的總數");
scanf("%d",&b);
if(b%2==1)
printf("腳的數量出現奇數,真奇怪啊! ");
elseif(b<=a*4&&b>=a*2)
{
c=(4*a-b)/2;//雞的數目
d=a-c;//兔的數目
if(c*2+d*4==b)
printf("雞有%ld只 兔有%ld只 ",c,d);//c和d反了
else
printf("這個真難,計算機也沒法算! ");
}
else
printf("輸入雞兔腳的數量范圍不正確,正確的范圍是%d--%d! ",a*2,a*4);
}
else
printf("數量不能為負! ");
}
⑹ c語言:雞、兔同籠,雞比兔多15隻,雞、兔共有腳132隻,問雞、兔各多少只
解:設兔有x只,則雞有(x+15)只。
4x+2(x+15)=132
4x+2x+30=132
6x=102
x=17
17+15=32(只)
答:雞有32隻,兔有17隻。
⑺ 雞兔同籠問題C語言程序編寫
雞兔同籠,共有35個頭,94條腿,求雞和兔子各有多少只?
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,d;
a=35,b=94;
c=2*a-b/2;
d=b/2-a;
cout<<"c="<<c<<"d="<<d<<endl;
return 0;
}
c=23 d=12
拓展資料:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。 目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
參考資料:C語言_網路
⑻ 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語言雞兔同籠問題
數組定義錯誤。C語言中不能像這樣定義變數a,然後定義數組m[a]。這個錯誤導致了你程序運算的錯誤。
修改方法:int m[a],n[a];改為int m[100],n[100];
即不要用變數a,而用一個常數。只要保證輸入的a不大於100就可以了。
如果想用變數作為數組的界限長度,要用到動態數組,不能用你現在的這種方法。