【SWU】分糖果 怎么分
吃饱了 2014-04-13 05:08:55 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6,14,20。然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。
个人意见:利用死循环和穷举法进行运算,设定两个数组,a【10】和b【10】,令for(i=0;i<10;i++)输入12,2,8,22,16,4,10,6,14,20,接着for(i=1;i<10;i++)b【i】=(a【i-1】+a【i】)/2,b【0】=(a【0】+a【9】),使用一个死循环使得 上式一直进行直到满足条件。但不知道如何同时使用if语句和for循环来判定,for(i=0,i<9,i++){a[i]=a[i+1],。
代码如下:
1 #include<stdio.h>
2
3 int main()
4 {
5 int a[10], b[10], i, j;
6 for(i=0;i<10;i++){
7 scanf("%d",&a[i]);
8 }
9 for(i=0;i<j;i++){
10 for(i=1;i<10;i++){
11 b[i]=(a[i]+a[i-1])/2;
12 }
13 b[0]=a[0]+a[9];
14 if(for(i=0;i<10;i++)(b[i]==b[i+1])){break;
15 for(i=0;i<10;i++){
16 printf("%d",a[i];
17 }
18 }
19 else for(i=0;i<10;i++){
20 a[i]=b[i];
21 }
22 j=j+i;
23 }
24
25
26 return 0;
27 }
28
29 printf("%d",
30
31
32 return 0;
33 }
写得挺乱的 ,新手,请大家见谅。