#include
bool allequall(int child[],int n)//判断各小孩手中的糖果是否相等
{
for(int i=0;iif(child[i]!=child[i+1])
return false;//不相等返回假
return true;//相等返回真
}
const int MaxNum=20;//定义最大人数
//主函数
void main()
{
loop:
cout<<"Pelase input the number of the children:";
int Num;
cin>>Num;//输入人数
if(Num>MaxNum)
{
cout<<"Error Number!!"<goto loop;
}
int *child;
int *child1;
//构造两个相应大小的数组child代表小朋友现有的糖果数child1代表小朋友原来有的糖果数
int Tnum=0;
child=new int [Num];
child1=new int [Num];
for(int i=0;i{
cout<<"Input NO."<cin>>child[i];
}
while(!allequall(child,Num))//当糖果数不相等时循环
{
for(int d=0;d{
if(child[d]%2!=0)
{
child[d]++;
Tnum++;
}
}//把糖果数为奇数小朋友的糖果数+1
for(int c=0;cchild1[c]=child[c];//将child1赋值用来记忆原来小朋友的糖果数
for(int r=0;rchild1[r]/=2;//求出原来每个小朋友糖果数的一半
for(int a=0;a{
child[a]/=2;
child[a]+=child1[a+1];
}
child[Num-1]/=2;
child[Num-1]+=child1[0];//把最后一个小朋友糖果数的一半加第一个小朋友的糖果数
}
cout<<"每个同学最后分到糖果数目是:"<<<"老师分发出的糖果数是:"<}
--------------------next---------------------
阅读(1236) | 评论(0) | 转发(0) |