本文目錄一覽:
- 1、C語言:搬磚問題。36塊磚,36個人搬,男搬4塊,女搬3塊,兩個小孩搬1塊,要求一次搬完,男,女
- 2、C語言搬磚問題?
- 3、C語言編程:100個人搬100塊磚,每個男人搬4塊,每個女人搬3塊,2個小孩抬一塊磚。問男人、女人
- 4、c語言編程題。搬運磚塊:男人一人搬3塊,女人一人搬2塊,小孩兩人搬1塊,問45人搬45塊磚,有多少搬法?
- 5、搬磚問題(C語言編程)
- 6、C語言編程(搬磚問題)
C語言:搬磚問題。36塊磚,36個人搬,男搬4塊,女搬3塊,兩個小孩搬1塊,要求一次搬完,男,女
這是一個循環的問題,設男人女人小孩分別是x y z,x+y+z=36;在算一下取值範圍,男人的取值範圍是0-9;女人得取值範圍是0-12;小孩的取值範圍是0-36-x-y;然後分別寫三個for循環就可以了
C語言搬磚問題?
男3人,女3人,小孩30人。
代碼:
#includestdio.h
int main(){
int man=0,women=0,child=0;
for (man=0;man=9;man++){
for(women=0;women=12;women++){
if((36-man-women)%2==0 (4*man+3*women+(36-man-women)/2)==36)
printf(“男%d人,女%d人,小孩%d人\n”,man,women,36-man-women);
}
}
return 0;
}
擴展資料:
C語言語法結構
順序結構:
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如:a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子裡面的水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為:c = a; a = b; b = c;執行結果是a = 5,b = c = 3。
不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個複雜的程序,例如分支結構中的複合語句、循環結構中的循環體等。
選擇結構:
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用選擇結構。
選擇結構適合於帶有邏輯或關係比較等條件判斷的計算,設計這類程序時往往都要先繪製其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪製的程序執行流程圖。
循環結構可以減少源程序重複書寫的工作量,用來描述重複執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do while循環和for循環。
一般不提倡用goto循環,因為強制改變程序的順序經常會給程序的運行帶來不可預料的錯誤。
特別要注意在循環體內應包含趨於結束的語句(即循環變數值的改變),否則就可能成了一個死循環,這是初學者的一個常見錯誤。
for(表達式1;表達式2;表達式3)循環體語句 。(其中;不能省略)
參考資料來源:百度百科-C語言
C語言編程:100個人搬100塊磚,每個男人搬4塊,每個女人搬3塊,2個小孩抬一塊磚。問男人、女人
#includestdio.h
int main()
{
int x,y,z;
for(z=0;z=100;z=z+2)
for(y=0;z+y=100;y++)
{
x=100-y-z;
if(4*x+3*y+z/2==100)
printf(“%d,%d,%d\n”,x,y,z);
}
}
x y z 分別為男人,女人,小孩個數
c語言編程題。搬運磚塊:男人一人搬3塊,女人一人搬2塊,小孩兩人搬1塊,問45人搬45塊磚,有多少搬法?
#includeiostream
using namespace std;
/*c語言編程題。搬運磚塊:男人一人搬3塊,女人一人搬2塊,小孩兩人搬1塊,問45人搬45塊磚,有多少搬法?
方程組為:3x+2y+z/2=45;x+y+z=45*/
void main()
{
int x,y,z,i=0;
for(x=0;x=15;x++)
for(y=0;y=90-6*x;y++)
for(z=0;z=90-6*x-4*y;z++)
if(6*x+4*y+z==90x+y+z==45)
{
i++;
cout”第”i”種方案為:男人:”x”個,女人:”y”個,小孩:”z”個”endl;
}
if(i==0)
cout”你丫會出題嗎你?”;
else
cout”這個板磚有”i”拍法。”;
system(“pause”);
}
//經實驗通過
搬磚問題(C語言編程)
//窮舉法,列舉出每一種組合,從中找出符合條件的。
#includestdio.h
void main()
{
int men,women,kids,people,bricks;
for(men=0;men10;men++)
for(women=0;women13;women++)
for(kids=0;kids37;kids=kids+2)
{
people=men+women+kids;
bricks=4*men+3*women+1*(kid/2);
if(people==36bricks==36)
printf(“it needs %d men ,%d women and %d kids\r\n”,men,women,kids);
}
}
C語言編程(搬磚問題)
演算法:4x+3y+z=36x+y+z=36x,y,z屬於小於36的正整數由於36個人搬,所以x不會大於9,y不會大於12,z不會大於36所以直到測試完三個條件才算考慮完畢所有情況為了簡化思路,將三個條件分開首先固定x,如果x不大於9則開始循環 固定y不斷計算z的值,若y值大於13則將x值增加並繼續循環 若z大於36則將y值增加並且繼續循環,每測試完一組值就記錄在一個結構體裡面每記錄完一個結構體就自增計數器並且將結構體放到最後計算完畢之後返回結構體代碼:#include stdio.htypedef struct cdt{ int x,y,z,*num; struct cdt next;}*adt;adt fun(adt link){ adt lk=link; int x,y,z; for(x=1;x!=10;++x){ for(y=1;y!=13;++y){ for(z=1;z!=37;++z){ if((36-4x-3y)=1){ if((z==(36-4x-3y))(z==(36-x-y))){ lk-next =(adt)malloc(sizeof(struct cdt)); lk-x=x,lk-y=y,lk-z=z,*(lk-num)++; lk=lk-next; } } } } } lk-next=null; return link;}int main(void){ adt link=(adt)malloc(sizeof(stuct cdt)); link-num=(int *)malloc(sizeof(int)); *link-num=0; link-next=null; link=fun(link); //自己出來結果。}
原創文章,作者:WMDB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/132894.html