dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>C/C++>C语言教程>文章内容
c语言 全国计算机编程大赛复赛试题1
来源:网络 作者:佚名
 在某次实弹射击训练中,班长将十个战士围成一圈发子弹。首先,班长给第一个战士10颗,第二个战士2颗,第三个战士8颗,第四个战士22颗,第五个战士16颗,第六个战士4颗,第七个战士10颗,第八个战士6颗,第九个战士14颗,第十个战士20颗。然后按如下方法将每个战士手中的子弹进行调整:所有的战士检查自己手中的子弹数,如果子弹数为奇数,则向班长再要一颗。然后每个战士再同时将自己手中的子弹分一半给下一个战士(第10 个战士将手中的子弹分一半给第1个战士)。问需要多少次调整后,每个战士手中的子弹数都相等?每人各有多少颗子弹?
    要求输出每轮调整后各战士手中的子弹数。
    要求结果的输出格式为
0   10   2   8  22  16   4  10   6  14  20  各战士手中原始的子弹数
1   xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  第1轮各战士手中的子弹数
2   xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  第2轮各战士手中的子弹数
    ……
n   xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  最后一轮各战士手中的子弹数(应相等)

 

#include "stdio.h"
main()
{ int i,ip=0, a[10],b[10];
  FILE *fp;

  a[0]=10; a[1]=2;                   /*  初始化 */
  a[2]=8;  a[3]=22;
  a[4]=16; a[5]=4;
  a[6]=10; a[7]=6;
  a[8]=14; a[9]=20;

   if((fp=fopen("SHITI1.dat","w"))==NULL)   /*  建输出结果文件 */
   { printf("cannot open this file.\n");
     exit(0);
     }

  fprintf(fp,"\n%5d",ip);             /*  ID为序号 */
   for(i=0;i<10;i++)
      fprintf(fp,"%5d",a[i]);
   fprintf(fp,"\n");

  do{
       for(i=0;i<10;i++)             /*   数为奇加1 */
  { if(a[i]%2!=0)
    a[i]=a[i]+1;
  }


      for(i=0;i<9;i++)               /*   向下传一半 */
 b[i+1]=(a[i]+a[i+1])/2;

 b[0]=(a[9]+a[0])/2;

 ip++;
        fprintf(fp,"%5d",ip);         /*  输出到文件  */ 
 for(i=0;i<10;i++)
    fprintf(fp,"%5d",b[i]);
 fprintf(fp,"\n");

 

 for(i=0;i<10;i++)
   a[i]=b[i];                   /* 直到数相等   */ 

   } while(!(a[0]==a[1]&&a[1]==a[2]&&a[2]==a[3]&&a[3]==a[4]&&a[4]==a[5]&&a[5]==a[6]&&a[6]==a[7]&&a[7]==a[8]&&a[8]==a[9]));

   fclose(fp);

}

以上是我编的程序,如你能有所改进或有别的方法实现,贴出来共同学习,分享吧!

 


上一篇:c语言 最简单的推箱子游戏   下一篇:c语言 全国计算机编程大赛复赛试题2
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·c语言 最简单的推箱子游戏
·c语言 全国计算机编程大赛复赛试
·编译指示指令
·C语言基础07-C语言中的关键字
·C语言基础06-逻辑运算符和逻辑表
·C语言基础05-运算符和表达式
·C语言入门之分支结构04-2
·C语言入门之分支结构04-1
·C语言基础03-先学2个库函数
·C语言基础02-数据类型、运算符与
·C语言基础01-引言及预备知识
·C语言入门之数组(1)
  相关文章
·c语言 最简单的推箱子游戏
·c语言 全国计算机编程大赛复赛试
·编译指示指令
·C语言基础07-C语言中的关键字
·C语言基础06-逻辑运算符和逻辑表
·C语言基础05-运算符和表达式
·C语言入门之分支结构04-2
·C语言入门之分支结构04-1
·C语言基础03-先学2个库函数
·C语言基础02-数据类型、运算符与
·C语言基础01-引言及预备知识
·C语言入门之数组(1)
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763