




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#includestdio.h#includestdlib.hint totscore();void paixu(struct people st,int n);/*排序函数*/struct people int num; int score;/*定义结构体存储人和其对应的分数*/int K=1;void main()int J;printf(第%d局比赛成绩录入:n,K);printf(n);FILE *fp;/* FILE *fp 是声明,声明fp是指针,用来指向FILE类型的对象*/int i,n;/*n是参加比赛人数*/ struct people st80; puts(-请输入总人数:);scanf(%d,&n); for(i=0;in;i+)/*完成一一对应的存储过程*/ printf( 请输入第%d人击倒的瓶数n,i+1); sti.num=i+1; sti.score= totscore();/*引用结构体元素的形式ai.b*/ for(i=0;in;i+)/*输出没有排序前的数据结果*/ printf(n); printf(第%d人击倒的瓶数是:%dn,sti.num,sti.score); printf(n); /*将存储后的数据排序*/ paixu(st,n); puts(=排序后=); printf(n); printf(第%d局的比赛结果排序情况:n,K); printf( 排名t 选手t 得分n); printf(n); for(i=0;in;i+) printf(第%d名t 第%d人t %dn,i+1,sti.num,sti.score); printf(n); /*排序后的结果存储到Result.txt */ if(fp=fopen(Result.txt,a+)=NULL) puts(=不能打开文件=); exit(0); /* int fprintf( FILE *stream, const char *format, . );fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件. fprintf()只能和printf()一样工作. fprintf()的返回值是输出的字符数,发生错误时返回一个负值. */ fprintf(fp,以下是第%d局比赛结果的排名:,K); fprintf(fp,n); fprintf(fp, 排名t 选手t 得分n); for(i=0;in;i+) fprintf(fp,第%d名t 第%d人t %dn,i+1,sti.num,sti.score); fprintf(fp,n); fclose(fp); K+;printf(是否继续录入下一局数据?1/0);printf(n);scanf(%d,&J);while(J!=1)&(J!=0)printf(输入错误,请重新输入:1/0 ?);scanf(%d,&J);printf(n);printf(n);if(J=1)main();elsesystem(Result.txt);system(pause); /*使输出窗口暂停*/*排序子函数,实现以总分为标准,将结构体成员按分数降序排列*/void paixu(struct people st,int n) int i,j; struct people t;/*声明中间量t也是结构体*/ for(i=0;in-1;i+) for(j=i+1;jn;j+) if(sti.scorestj.score)t=sti; sti=stj; stj=t; /*求每局总分数的子函数*/int totscore()int a195,i,j,t,m,k,x,q,w,sum=0,y=0,r=0,p=0;/*i控制第几轮数目,j控制第几次数目,t为寄存第一次击倒瓶子数变量,m为第二次击倒瓶子数变量,k为第十轮第三次击倒瓶子数目变量,x为寄存k的变量,最后要t+m+x统计第十轮总数*/ for(i=1;i=10;i+) for(j=0;j1;)/*用i表示第i轮,j表示第i轮的第(j+1)次*/ printf( 请输入第%d轮第一次击倒的瓶数:n,i); puts(-注意输入击倒的瓶数不要高于10-); scanf(%d,&aij);/*上面是第i论的(j+1)次击球数目,根据第一次的击球数又分为下面三种情况决定第二次击球,主要讨论aij10) printf(error数值溢出,请重新输入第%d轮第一次击倒的瓶数:n,i);puts( -请输入击倒的瓶数不要大于10-);scanf(%d,& aij); t=aij; /*只有数据正确才会脱离while语句,赋值给变量t,放便于数据的变化,而数组专门用来存放每轮每次的击倒球数目,所以具体分以下两种情况*/*情况一,第一次击球少于10个时*/ if(aij10) printf( 请输入第%d轮第二次击倒的瓶数:n,i); printf(-注意输入击倒的瓶数不要高于%d-n,10-t); j+;/*此时下面这个aij已经是第i轮的第二次击球了,并且又分为第十轮以下第十轮以上的情况*/ scanf(%d,&aij); if(aij10-t) printf(error数值溢出,请输入第%d轮第二次击倒的瓶数:n,i); printf(-注意输入击倒的瓶数不要高于%d-n,10-t); scanf(%d,&aij); /*如果输入的一直大于10-t就一直显示错误*/ m=aij; /*由于第10轮又有特殊情况,所以下面又加以区分:*/ if(m=10-t)&(i10)/*在第十轮以下时,直接计算两次总和输出*/ printf(第%d轮击倒的瓶数是%dn,i,m+t);printf(n);x=0; /*防止最后结果是随机数以下一样*/ if(m10-t)&(i=10)/*第十轮的第二次击球如果少于10-t个,将失去第三次击球机会所以也是直接输出结果*/ printf(第%d轮击倒的瓶数是%dn,i,m+t);printf(n);x=0; if(m=10-t)&(i=10)/*第十轮第二次正好击倒10-t个瓶子,则第十轮第一第二次总和为10瓶子,所以获得第三次击球奖励,之后再计算三次总和*/ puts( 请再次输入一次击倒的瓶数); puts(-输入击倒的瓶数不要大于10-); scanf(%d,&k); if(k10) puts(error数据溢出,请再次输入一次击倒的瓶数:); printf(-输入击倒的瓶数不要大于10-); scanf(%d,&k); x=k; printf(第%d轮击倒的瓶数是%dn,i,m+t+x); printf(n); /*至此情况1完毕*/ /* 情形2,第一次击球就已经够10个时 */if(t=10) /*t表示第一次的击球数目,在前面已经有写,这里注释提醒*/ if(i=10)/*第10论的第一次击球够10个时*/ puts( 输入额外的第一次击倒的瓶数:); puts(-注意输入击倒的瓶数不要高于10 -); scanf(%d,&w); while(w10) puts(error数据溢出,请重新输入第一次额外击倒的瓶数:); puts( -请输入击倒的瓶数不要大于10-); scanf(%d,&w); if(w=10) y=w; if(y=10) puts( 输入第二次额外击倒的瓶数!); puts( -请输入击倒的瓶数不要大于10-); scanf(%d,&p); if(p10) puts(error数据溢出,请输入第二次额外击倒的瓶数:); puts( -请输入击倒的瓶数不要大于10-); scanf(%d,&p); r=p;x=0;/*防止最后结果是随机数*/ else/*是y=w=10的10情况,即是第一次额外击球不够10个,这里第二次就是把剩下的进行击球*/ puts( 输入第二次额外击倒的瓶数!); printf( -请输入击倒的瓶数不要大于%d的分数!-n,10-y); scanf(%d,&p); if(p10-y) puts( 输入第二次额外击倒的瓶数!); printf( -请输入击倒的瓶数不要大于%d的分数!-n,10-y); scanf(%d,&p); r=p; x=0;/*避免计算结果时产生随机数*/ printf(第%d轮击倒的瓶数是%dn,i,10+y+r); printf(n); printf(n); j+; aij=0; if(i10) /*如果第十轮之前的第一次击球已经10个,直接到省去二次击球*/ printf(第%d轮击倒
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 退休财务创新创业项目商业计划书
- 网红IP授权合作流程标准化创新创业项目商业计划书
- 民宿直播展示创新创业项目商业计划书
- 网红电商供应链金融风控平台创新创业项目商业计划书
- 汽车VR定制内饰体验创新创业项目商业计划书
- 智能电网用户互动平台创新创业项目商业计划书
- 2025年纺织服装制造业智能化生产设备投资回报率研究报告
- 2025年矿山无人化作业技术装备创新与产业发展报告
- 2025年电商直播中主播品牌合作模式创新案例研究及风险控制策略报告
- 2025年老年健康管理长期照护服务模式创新实践分析报告
- 住院病人防止走失课件
- 2025年临床助理医师考试试题及答案
- 2025年南康面试题目及答案
- 2025年全国学宪法讲宪法知识竞赛考试题库(含答案)
- 定增基金管理办法
- 汽车标定工程师培训课件
- 速叠杯教学课件
- 2025年第十届“学宪法、讲宪法”活动知识竞赛题库及答案
- 北京项目工程管理办法
- (高清版)DB11∕T 3046-2025 健康体检质量控制规范
- 【公开课】热量+比热容(教学课件)2025-2026学年初中物理人教版(2024)九年级全一册
评论
0/150
提交评论