c++训练打卡(13)

分糖果问题:

10个小孩围成一圈分糖果,老师分给第1个小孩10块,第2个小孩2块,第3个小孩8块,第4个小孩22块,第5个小孩16块,第6个小孩4块,第7个小孩10块,第8个小孩6块,第9个小孩14块,第10个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖块数一样多吗?每人各有多少块糖?
流程图:

 

伪代码:

源代码:

#include<stdio.h>
void print(int s[]);
int judge(int c[]);
int j=0;
int main(){
int sweet[10]={10,2,8,22,16,4,10,6,14,20};
int i,t[10],l;
printf("child 1 2 3 4 5 6 7 8 9 10\n") ;
printf("..........................\n");
printf("time\n");
print(sweet);
while(judge(sweet)){
for(i=0;i<10;i++){
if(sweet[i]%2==0)
t[i]=sweet[i]=sweet[i]/2;
else
t[i]=sweet[i]=(sweet[i]+1)/2;
}
for(l=0;l<9;l++){
sweet[l+1]=sweet[l+1]+t[l];}
sweet[0]+=t[9];
print(sweet);
}
}
int judge(int c[]) {
int i;
for(i=0;i<10;i++){
if(c[0]!=c[i])
return 1;
}
return 0;
}
void print(int s[]){
int k;
printf(" %2d ",j++);
for(k=0;k<10;k++){
printf("%4d",s[k]);
}
printf("\n");
}

 

posted @   夏季彼岸德  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示