092.分糖果

举报
C语言与CPP编程 发表于 2022/05/03 00:58:04 2022/05/03
【摘要】 #include<stdio.h>void print(int s[]);int judge(int c[]);int j=0;void main(){ static int sweet[10]={10,2,8,22,16,4,10,6,14,20}; /*初始化数组数据*/ int i,t[10],l; ...

  
  1. #include<stdio.h>
  2. void print(int s[]);
  3. int judge(int c[]);
  4. int j=0;
  5. void main()
  6. {
  7. static int sweet[10]={10,2,8,22,16,4,10,6,14,20}; /*初始化数组数据*/
  8. int i,t[10],l;
  9. clrscr();
  10. printf(" Child No. 1 2 3 4 5 6 7 8 9 10\n");
  11. printf("------------------------------------------------------\n");
  12. printf(" Round No.|\n");
  13. print(sweet); /*输出每个人手中糖的块数*/
  14. while(judge(sweet)) /*若不满足要求则继续进行循环*/
  15. {
  16. for(i=0;i<10;i++) /*将每个人手中的糖分成一半*/
  17. if(sweet[i]%2==0) /*若为偶数则直接分出一半*/
  18. t[i]=sweet[i]=sweet[i]/2;
  19. else /*若为奇数则加1后再分出一半*/
  20. t[i]=sweet[i]=(sweet[i]+1)/2;
  21. for(l=0;l<9;l++) /*将分出的一半糖给右(后)边的孩子*/
  22. sweet[l+1]=sweet[l+1]+t[l];
  23. sweet[0]+=t[9];
  24. print(sweet); /*输出当前每个孩子中手中的糖数*/
  25. }
  26. printf("------------------------------------------------------\n");
  27. printf("\n Press any key to quit...");
  28. getch();
  29. }
  30. int judge(int c[])
  31. {
  32. int i;
  33. for(i=0;i<10;i++) /*判断每个孩子手中的糖是否相同*/
  34. if(c[0]!=c[i]) return 1; /*不相同返回 1*/
  35. return 0;
  36. }
  37. void print(int s[]) /*输出数组中每个元素的值*/
  38. {
  39. int k;
  40. printf(" <%2d> | ",j++);
  41. for(k=0;k<10;k++) printf("%4d",s[k]);
  42. printf("\n");
  43. }

文章来源: blog.csdn.net,作者:程序员编程指南,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41055260/article/details/124536629

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。