c语言分糖果

Python017

c语言分糖果,第1张

#include<stdio.h>

#define N 20

int n

int equal(int [])

void main()

{

    int num=0,count=0,i,t1,t2

    int child[N]

    printf("请输入小孩数:")

    scanf("%d",&n)

    printf("请输入每个小孩手中的原始糖数:")

    for(i=0i<ni++)

        scanf("%d",&child[i])

    while(!equal(child))

    {

        for(i=0i<ni++)

        {

            if(child[i]%2!=0)

            {

                child[i]+=1

                num+=1

            }

        }

        t1=child[0]

        for(i=0i<ni++)

        {

            t2=child[(i+1)%n]

            child[(i+1)%n]/=2

            child[(i+1)%n]+=t1/2

            t1=t2

        }

        count+=1

        for(i=0i<ni++)

            printf("%d ",child[i])

        printf("\n")

    }

    printf("经过%d次交换后糖数相\n调整过程中新发%d颗糖\n糖数是%d颗\n",count,num,child[1])

}

int equal(int child[])

{

    int i

    for(i=1i<ni++)

        if(child[i]!=child[i-1])

            return 0

    return 1

}

不少问题,改了一下,楼主看看。加了一个每次分完后的结果输出。

都已经回复过了,怎么还在重复发贴啊~~

#include<stdio.h>

int

equal(int

child[])//判断每个小孩手上的糖是否相等

{

int

i

for(i=1i<10i++)

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=1i<10i++)

{//循环分糖

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])

}