A. 用c語言實現《分糖果》

main()
{
int n[20],c=0,t=0; /* t:為老師增發了多少顆糖*/
scanf("有多少個小孩%d",&c);
for(int y=0;y<c;y++)
{
scanf("第"+(y+1)+"個小孩的糖果數為%d",n[y]);
}
bool num=true;
while(num)
{int y=0;
while(num&&(y<c-1))
{
if(n[y]==n[y+1])
num=true;
else
num=flase;
}
if(!num)
{
for(int a=0;a<c-1;a++)
{
if(n[a]/2!==0)
{
n[a]=n[a]+1;
t++;
}
n[a+1]=n[a+1]+n[a]/2;
n[a]=n[a]/2;
if(a==c-1)
{
n[0]=n[0]+n[a]/2;
n[a]=n[a]/2;
}
}
}
while(num&&(y<c-1))
{
if(n[y]==n[y+1])
num=true;
else
num=flase;
}
}

printlf("調整後,老師增發了"+%d+"顆糖",t);
printlf("整個過程,共經歷了"+%d+"次",);
printlf("調整後, 每個孩子有"+%d+"顆糖");
}

B. c語言分糖果

#include<stdio.h>
#define N 20
int n;
int equal();
void main()
{
int num=0,count=0,i,j,child[N];
printf("請輸入小孩數:");
scanf("%d",&n);
printf("請輸入每個小孩手中的原始糖數:");
for(i=0;i<n;i++)
scanf("%d",&child[i]);
while(equal(child))
{
for(i=0;i<n;i++)
{
if(child[i]%2!=0)
{
child[i]+=1;
num+=1;
}
child[i]/=2;
}
j=child[n-1];
for(i=n-1;i>0;i--)
child[i]+=child[i-1];
child[0]+=j;
count+=1;
/* for(i=0;i<n-1;i++)printf("%d ",child[i]);printf("\n"); 檢查用 */
}
printf("經過%d次交換後糖數相\n調整過程中新發%d顆糖\n糖數是%d顆\n",count,num,child[1]);
}
int equal(int child[])
{
int i;
for(i=1;i<n;i++)
if(child[i]!=child[i-1])
return 1;
return 0;
}

C. c語言編寫《分糖果問題》

倒!!!又是腦筋急轉變!!!!!

都是高手看的東東。。。閃!

D. c語言編程:分糖果

都已經回復過了,怎麼還在重復發貼啊~~
#include<stdio.h>

int equal(int child[])//判斷每個小孩手上的糖是否回相等
{
int i;
for(i=1;i<10;i++)
if(child[i]!=child[i-1])
return 1;
return 0;
}

void main()
{
int child[10]={10,2,8,22,16,4,10,6,14,20};
int i, tmp0, tmp, sum=0, count=1;
while(equal(child)) {
tmp0= child[0];
for(i=1;i<10;i++) {//循環分糖
if(child[i]%2)
child[i]++;
tmp = child[i];
child[i-1]=child[i-1]/2+tmp/2;//分糖後答
}
if(tmp0%2)
tmp0++;
child[9]=child[9]/2+tmp0/2;
count++;
}
printf("經過%d次後,大家手上都有%d塊糖.\n", count, child[0]);
}

E. C語言 10人分糖

所有小孩同時把自己的糖果分一半給右邊的小孩。注意這里是同時,並不是第一個小孩把糖給第二個小孩以後,第二個小孩再把他現有糖的一半給下一個小孩。

#include<stdio.h>
intmain()
{
intA[]={12,2,8,22,16,4,10,6,14,20},
N=sizeof(A)/sizeof(int),
steps;
inti,prev,temp;

for(steps=0;;steps++)
{
//判斷是否全部相等
for(i=1;i<N;i++)
if(A[i]!=A[0])break;
if(i==N)break;
//模擬
prev=A[N-1]/2;//記錄前一個小孩糖數的一半
for(i=0;i<N;i++)
{
temp=A[i]/2;
A[i]=temp+prev;
A[i]+=A[i]&1;
prev=temp;
}
}
printf("Value:%d Steps:%d",A[0],steps);
}
//Output
Value:18
Steps:16

F. C語言分糖果,1處應該填什麼

count //來做計數的。
但是這樣寫得話,估計編譯器會報錯,因為是通過i=10,來做停止循環的關鍵數。因為如果全部相等,會做完全部循環,不然就會break.

G. C語言的小孩分糖問題

#include;#include;int;main(void){ int;a;=;{;12,;2,;8,;22,;16,;4,;10,;6,;14,;20;}; int;i,;j; int;b; do { for;(i;=;0;;i;