文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C语言实例 10个小孩分糖果

C语言实例 10个小孩分糖果

时间:2010-10-18  来源:恨雪

  *问题分析与算法设计

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

  *程序说明与注释

  #include<stdio.h>

  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(" childn");

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

  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;

  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; /*不相同返回 1*/

  return 0;

  }

  void print(int s[]) /*输出数组中每个元素的值*/

  {

  int k;

  printf(" %2d ",j++);

  for(k=0;k<10;k++) printf("%4d",s[k]);

  printf("n");

本文地址:【伊甸网】http://www.edenw.com/tech/devdeloper/c/2010-10-18/5998.html
相关阅读 更多 +
排行榜 更多 +
边境检察最后区域手机版下载

边境检察最后区域手机版下载

角色扮演 下载
酋长你别跑手游下载

酋长你别跑手游下载

休闲益智 下载
心动漫画app下载官方版

心动漫画app下载官方版

浏览阅读 下载