36人搬磚C語言
⑴ 高分懸賞C語言作業!!!!!急!!!!!
// 搬磚
#include<stdio.h>
int main()
{
int m,g,c;//定義變數,男生數量為m,女生為g,小孩為c
for (m=1;m<36;m++)
for (g=1;g<36;g++)
for (c=1;c<36;c++)
if ((m+g+c)==36&&(8*m+6*g+c)==72)// 滿足人數為36,搬磚數量為36則輸出
printf("男%d 女%d 小孩%d\n",m,g,c);
return 0;
}
⑵ C循環-搬磚問題36人36磚一次搬完男人一次4塊女人一次3塊,2個小孩抬一塊
計算機默認int類型無小數,即29/2=14,所以你要在輸出前判定children是否為偶數
⑶ 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.h>typedef 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); //自己出來結果。}
⑷ 用C語言實現36塊磚,36人搬,男人一次搬4塊,女人一次搬3塊,兩個小孩抬一塊,一次性辦完有多少種搬法
男人一次搬4塊,一共36塊,那麼需要男同志一次搬完就是36/4=9 女人一次搬3塊,一共36塊,那麼需要女同志一次搬完就是36/3=12 看見了嗎,8和11就是這么算出來的,窮舉法就是保證男同志最多8人,女同志最多11人,加上小朋友的,看怎麼湊出來,方程: 4m+3w+c/2=36 就可以了
⑸ C語言: 36塊磚,36人搬:一男搬4塊,1女搬3塊,兩小孩抬一塊,一次全部搬完問男、女、小孩人數各若干
30小孩 3男人 3女人