当前位置:   article > 正文

C语言基础趣味练习题目----十人分糖果_c语言编程幼儿园10个小朋友围成一圈游戏

c语言编程幼儿园10个小朋友围成一圈游戏
  1. //分糖果二
  2. /*10个小孩围成一圈分糖果,老师分给第一个孩子10块,第二个小孩2块,
  3. 后面依次分的糖果数量为8、22、16、4、10、6、14、20。然后所有的小孩
  4. 同时将手中的糖果分一半给右边的小孩,糖果为奇数的可向老师要一块。
  5. 问经过几次后,大家手中的糖果的块数将一样多,每个人有多少糖果。*/
  6. #include<stdio.h>
  7. #define N 10
  8. int judgement(int a[],int n);
  9. int main()
  10. {
  11. int a[N]={10,2,8,22,16,4,10,6,14,20};
  12. int b[N];
  13. //int c[N];
  14. int i;int k=0;
  15. while(1)
  16. {
  17. k++;
  18. for(i=0;i<N;i++)
  19. {
  20. b[i]=a[i]/2;
  21. a[i]=a[i]/2;
  22. }
  23. for(i=0;i<N;i++)
  24. {
  25. if(i==0)
  26. {
  27. a[i]=b[N-1]+a[i];
  28. }
  29. else a[i]=b[i-1]+a[i];
  30. }
  31. for(i=0;i<N;i++)
  32. {
  33. if((a[i]+1)%2==0)
  34. a[i]=a[i]+1;
  35. }
  36. if(judgement(a,N))
  37. {
  38. printf("After %dtimes accomplished,everyone has %d candise!!!" ,k,a[0]);
  39. break;
  40. }
  41. }
  42. }
  43. //判断数组每个数是否相等的函数
  44. int judgement(int a[],int n)
  45. {
  46. int i=0;
  47. int judge;
  48. for(i=0;i<n;i++)
  49. {
  50. if(a[i]!=a[0])
  51. {
  52. //printf("数组每个数并不相等");
  53. judge=0;
  54. return judge;
  55. break;
  56. }
  57. if(a[i]==a[0]&&i==n-1)
  58. {
  59. //printf("数组每个数都是相等的");
  60. judge=1;
  61. return judge;
  62. }
  63. }
  64. }

这是个经典的双重循环问题,只要有耐心多调试就可出来答案,数据较多 入门新手不要粗细即可,(方法不一,欢迎留言讨论)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/427658
推荐阅读
相关标签
  

闽ICP备14008679号