C语言求助:十个小孩围成一圈分糖果问题

十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第... 十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖的块数一样多?每人各有多少块糖?

#include<stdio.h>
int fx(int a[10])
{
int b[10];
int i,j,count=0;
do
{
count++;
for(i=0;i<10;i++)
{
b[i]=a[i]/2;
a[i]=b[i];
}
a[0]=b[9]+a[0];
for(i=0;i<10;i++)
if(a[i]%2) a[i]+=1;
for(i=0;i<9;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};
printf("需要这样做%d次,每个人手中的糖块数量才相等,数量为%d块。",fx(a),a[0]);
}
以上是我编的程序,语法并没有错误,但输不出来结果,求高手指点~~
展开
 我来答
百度网友83cdc1c
2013-06-19 · TA获得超过5792个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:854万
展开全部
#include<stdio.h>
int fx(int a[10])
{
int b[10];
int i,j,count=0;
do
{
count++;
for(i=0;i<10;i++)    //奇数补充动作应该在分糖之前
    if(a[i]%2) a[i]+=1;
for(i=0;i<10;i++)
{
b[i]=a[i]/2;
a[i]=b[i];
}
a[0]=b[9]+a[0];
for(i=1;i<10;i++)    //a[1]~a[9]的合并动作要补上
    a[i]+= b[i-1];
for(i=0;i<9;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
}
qipilangfour
推荐于2018-03-02 · TA获得超过232个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:126万
展开全部
#include<stdio.h>
int fx(int a[10])
{
int b[10];
int i,j,count=0;
do
{
count++;
//先看是否是奇数
for(i=0;i<10;i++)
{
if(a[i]%2)
{
a[i]+=1;
}
}
for(i=0;i<10;i++)
{
b[i]=a[i]/2;
a[i]=b[i];
}
a[0]=b[9]+a[0];
//你没有移动糖给边上的小朋友,用下面的代码加上
for (i = 1; i < 10; ++i)
{
a[i] += b[i - 1];
}

for(i=0;i<9;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 n = fx(a);//如果函数不遇到“;”号是不会结束的,所以要先算出结果,不然a[0]还是以前的值
printf("需要这样做%d次,每个人手中的糖块数量才相等,数量为%d块。",n,a[0]);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式