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;