设为首页 加入收藏

TOP

C语言实例:10个小孩分糖果
2014-11-17 12:00:25 】 浏览:565
Tags:语言 实例 :10 小孩 糖果

  十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖的块数一样多?每人各有多少块糖?


  *问题分析与算法设计


  题目描述的分糖过程是一个机械的重复过程,编程算法完全可以按照描述的过程进行模拟。


  *程序说明与注释


  #include


  void print(int s[]);


  int judge(int c[]);


  int j=0;


  int main()


  {


  static int sweet[10]={10,2,8,22,16,4,10,6,14,20}; /*初始化数组数据*/


  int i,t[10],l;


  printf(" child\n");


  printf(" round 1 2 3 4 5 6 7 8 9 10\n");


  printf(".............................\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 /*若为奇数则加1后再分出一半*/


  t[i]=sweet[i]=(sweet[i]+1)/2;


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇c++中typedef类型定义的用法 下一篇C语言实例:小明买书

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目