c语言分糖果函数 c语言实验 买糖果
C语言求助:十个小孩围成一圈分糖果问题
#includestdio.h
成都创新互联是一家集网站建设,宝鸡企业网站建设,宝鸡品牌网站建设,网站定制,宝鸡网站建设报价,网络营销,网络优化,宝鸡网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
int fx(int a[10])
{
int b[10];
int i,j,count=0;
do
{
count++;
for(i=0;i10;i++) //奇数补充动作应该在分糖之前
if(a[i]%2) a[i]+=1;
for(i=0;i10;i++)
{
b[i]=a[i]/2;
a[i]=b[i];
}
a[0]=b[9]+a[0];
for(i=1;i10;i++) //a[1]~a[9]的合并动作要补上
a[i]+= b[i-1];
for(i=0;i9;i++)
if(a[i]!=a[i+1]) break;
j=i;
}while(j!=9);
return(count);
}
void main()
{
int a[10]={10,2,8,22,16,4,10,6,14,20};
int cnt = fx(a); //用一个局部变量保存fx的返回结果
printf("需要这样做%d次,每个人手中的糖块数量才相等,数量为%d块。",cnt,a[0]); //因为参数处理是从右往左,所以原来的代码在引用a[0]的值时,fx函数还未被调用,所以要在printf之前先调用fx
}
c语言编程,10个小朋友围成一圈分糖果。
#include stdio.h
void rerange(int x[])
{
int temp = x[0] / 2, l, m;
l = temp;
for (int i = 1; i 10; i++)
{
m = x[i] / 2;
x[i] = m + temp;
temp = m;
}
x[0] = temp + l;
for (int i = 0; i 10; i++)
{
printf("%d ", x[i]);
if (x[i] % 2)
{
x[i] += 1;
}
}
printf("\n");
}
int main()
{
int a[10] = {12, 2, 8, 22, 16, 4, 10, 6, 14, 20};
int n = 5;
for (int i = 0; i n; i++)
{
printf("第%d次调整:\n", i + 1);
rerange(a);
}
return 0;
}//解决请采纳
用C语言实现《分糖果》
main()
{
int n[20],c=0,t=0; /* t:为老师增发了多少颗糖*/
scanf("有多少个小孩%d",c);
for(int y=0;yc;y++)
{
scanf("第"+(y+1)+"个小孩的糖果数为%d",n[y]);
}
bool num=true;
while(num)
{int y=0;
while(num(yc-1))
{
if(n[y]==n[y+1])
num=true;
else
num=flase;
}
if(!num)
{
for(int a=0;ac-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(yc-1))
{
if(n[y]==n[y+1])
num=true;
else
num=flase;
}
}
printlf("调整后,老师增发了"+%d+"颗糖",t);
printlf("整个过程,共经历了"+%d+"次",);
printlf("调整后, 每个孩子有"+%d+"颗糖");
}
c语言编程:分糖果
都已经回复过了,怎么还在重复发贴啊~~
#includestdio.h
int equal(int child[])//判断每个小孩手上的糖是否相等
{
int i;
for(i=1;i10;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;i10;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]);
}
网站名称:c语言分糖果函数 c语言实验 买糖果
网页链接:http://azwzsj.com/article/ddsgdcs.html