分析:定义长度为10的整型数组来存储每人的糖果,定义一个while循环,while循环的条件是每个孩子手中的糖果不同,在while循环中再定义一个for循环,这个for循环用来计算给其他孩子分糖果,再定义一个for循环,这个for循环用来加上分到的糖果,其中数组的0号位特殊处理,定义一个函数judge来判断是否每个孩子手中的糖果都相等
#include<stdio.h>
int j=0;
void print(int s[])
{
int k;
printf(" %2d",j++);
for(k=0;k<10;k++)
printf("%4d",s[k]);
printf("\n");
}
int judge(int c[])
{
int i;
for(i=0;i<10;i++)
if(c[0]!=c[i])
return 1;
return 0;
}
int main()
{
int sweet[10]={10,2,8,22,16,4,10,6,14,20};
int t[10];
//int temp[10];
int i,l;
printf("child 1 2 3 4 5 6 7 8 9 10\n");
printf("........................................\n");
printf("time\n");
print(sweet);
while(judge(sweet)) //不满足要求继续循环
{ //将每个孩子手中的糖果分一半
for(i=0;i<10;i++)
{ if(sweet[i]%2==0)
t[i]=sweet[i]=sweet[i]/2;
else
t[i]=sweet[i]=(sweet[i]+1)/2;
}
//将分的糖果加给被分糖果的孩子
for(l=0;l<9;l++)
{
sweet[l+1]=sweet[l+1]+t[l];
}
sweet[0]=sweet[0]+t[9];
print(sweet);
}
return 0;
}
标签:10,int,sweet,循环,printf,糖果 From: https://www.cnblogs.com/qian-heng/p/17359063.html