网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.C++中数组和指针类型的关系浅议.
.CB生成的程序需要哪些文件.
.再谈C语言中数组和指针之间的互操.
.OpenBSD 可加载内核模块编程完全.
.限次使用新法.
.揭开C/C++中数组形参的迷雾.
.C++ 类型转换.
.C语言中的面向对象(2)-C语言的多.
.C语言程序应用举例.
.HANOI塔问题的递归解.
.面向对象思想的精辟论述.
.C++对象布局及多态实现探索之虚函.
.简易实现网上动态信息发布.
.C++ Builder 控制窗体.
.八皇后动态图形的实现.
.Windows下的函数hook技术.
.揭开NTFS下流的奥秘.
.随机数算法.
.C程序开发经典实例之8.
.自动跳转.

全国计算机编程大赛复赛试题1

发表日期:2008-3-8


    在某次实弹射击练习中,班长将十个战士围成一圈发子弹。首先,班长给第一个战士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("SH99vI1.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);
}
以上是我编的程序,如你能有所改进或有别的方法实现,贴出来共同学习,分享吧!
上一篇:取得汉字的笔画的源码(1) 人气:546
下一篇:图形与动画-03 人气:535
浏览全部C/C++的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐