版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 设计报告一, 实验目的:通过上机实习,熟练掌握循环语句、选择语句、指针以及结构体的运用技巧。在实习中通过实际操作,编写程序,发现问题,最后解决问题,提升对c语言实用性的理解,在实践中巩固各知识点。C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点,上机实习可以帮助我们更好地理解这种结构式的中级语言以及其各式各样的数据类型和高效率的运算程序,为我们进一步学习C+打下坚实基础。同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而且也让我们发现了一些自己的个人误区以及其他人容易犯的错误,从而在今后的学习中更加谨慎,达到事半功倍的效果;通过询问老
2、师,也让我们养成了不耻下问的好习惯,这将很有利于以后的学习。闲乐-一个人闲。不如大家一块儿乐http:/www.xlw.cc二,总体设计: 1,学生成绩排名1,流程图:I=0 再输入一个学生的成绩IaI+I假 aj aj+1赋值真?I=0 输出I11? 假? 结束 真? 2,程序:#includeint main()int a11,i,j,t,b,c,temp1,temp2,temp3; /定义一个数组a11,用以存放学生的成绩printf(从键盘输入10个学生成绩:n);for(i=0;i10;i+)scanf(%d,&ai); /输入10个学生成绩for(i=0;i9;i+)for(j=0
3、;j9-i;j+)if(ajaj+1)t=aj;aj=aj+1;aj+1=t; /采用冒泡法,将学生成绩按照从高到低进行排序 printf(10个学生成绩数组:n);for(i=0;i10;i+)printf(%5d,ai); printf(n);printf(再输入一个学生的成绩n); scanf(%d,&b); /再输入一个学生的成绩 c=a9;if(bc) /将此成绩按照排序规律插入原学生成绩数组a10=b;else for(i=0;i10;i+) if(aib) temp1=ai;ai=b; for(j=i+1;j11;j+) temp2=aj;aj=temp1;temp1=temp2
4、; break; printf(11个学生成绩数组:n); /输入11个学生成绩 for(i=0;i11;i+) printf(%5d,ai); printf(n); for(i=0;i5;i+) /排好序的成绩单进行反序存放temp3=ai;ai=a10-i;a10-i=temp3; printf(排好序的成绩单进行反序存放为:n); for(i=0;i11;i+) /输出反序存放后的学生成绩数组 printf(%5d,ai); printf(n); return 0;3,运行结果:2,根据条件进行学生成绩排名1,流程图:I=0,i+输入nSort1 sort2I=0,i+I10?假?IaI
5、+I假 aj aj+1赋值真?赋值I由0变到n-1执行n次循环 进行n-1-I次比较 真 ajaI+I假 aj aj+1 输出a0到an-1 Style=97赋值InI=0,i+输入n Sort3假?Style=100假?真?真?I由0变到n-1执行n次循环 进行n-1-I次比较 真 ajaI+I假 aj aj+1输入a or d输出a0到an-12,程序: #includevoid sort1(int a10) /定义函数 int i,j,t;printf(输入10个学生成绩:n); for(i=0;i10;i+)scanf(%d,&ai); /输入n个学生成绩 for(i=0;i10;i+
6、) /冒泡法对n个数字排序for(j=0;j9-i;j+)if(ajaj+1)t=aj;aj=aj+1;aj+1=t; printf(10个学生成绩从高到低排名是:n); for(i=0;i10;i+) /输出结果 printf(%5d,ai); printf(n); void sort2(int a,int n) /定义函数int i,j,t; printf(请输入学生个数n:n); scanf(%d,&n); printf(输入n个学生成绩:n); for(i=0;in;i+)scanf(%d,&ai); for(i=0;in;i+) /冒泡法对n个数字排序for(j=0;jn-i-1;j
7、+)if(ajaj+1)t=aj;aj=aj+1;aj+1=t; printf(n个学生成绩从高到低排名是:n); for(i=0;in;i+) /输出结果 printf(%5d,ai); printf(n);void sort3(int a,int n, char style) char c; getchar(c); printf(请输入style类型:a or dn);style=getchar();printf(请输入学生个数n:n);scanf(%d,&n);printf(输入n个学生成绩:n); int i,j,t; for(i=0;in;i+)scanf(%d,&ai);if(st
8、yle=97) printf(对n个数字升序排列为:n);for(i=0;in;i+) /冒泡法对n个数字升序排列 for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t; else if(style=100) printf(对n个数字降序排列为:n);for(i=0;in;i+) /冒泡法对n个数字降序排列 for(j=0;jn-i-1;j+)if(ajaj+1)t=aj;aj=aj+1;aj+1=t; printf(n个学生成绩排名是:n); for(i=0;in;i+) /输出结果 printf(%5d,ai); printf(n);int main() /主函数 print
9、f(sort1:n); /调用sort1函数 int a10;sort1(a);printf(sort2:n); /调用sort2函数int a30000,n;sort2(a,n);printf(sort3:n); /调用sort3函数 int a30000,n;char style;sort3(a,n,style);return 0;3,运行结果: 3,用指针优化学生成绩排名1, 流程图:Sort copy main 2,程序:#include#includevoid sort(int *p) /定义函数sort /将成绩数组按照从高到低进行排序,要求用函数实现int i,j,t;for(i
10、=0;i9;i+)for(j=0;j9-i;j+)if(*(p+j)*(p+j+1)t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;void copy(char *a,char *b) /定义函数copy for(;*a!=0;a+,b+) / 复制该字符串,用函数实现 *b=*a;*b=0;int main()int i,j,t,stu10,*p; / 定义一个数组stu10存放10个学生的成绩 p=stu;printf(请输入10个数据:n); for(i=0;i10;i+) /从键盘输入数据,用指针实现scanf(%d,p+i);printf(数组stu10的内容
11、为:n);for(i=0;i10;i+) /将数组stu10的内容输出到屏幕上,用指针实现printf(%5d,*(p+i);printf(n);for(i=0;i9;i+) /将成绩数组按照从高到低进行排序,用指针实现for(j=0;j9-i;j+)if(*(p+j)*(p+j+1)t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;printf(成绩数组按照从高到低进行排序为:n); p=stu; for(i=0;i10;i+)printf(%5d,*(p+i);printf(n);p=stu;sort(p); /调用函数sortprintf(第三步内容放在函数中实现为
12、:n); for(i=0;i10;i+)printf(%5d,*(p+i);printf(n);printf(采用指针方法,输入字符串student score: n);char *a=student score;char b14;copy(a,b); /调用函数copyprintf(%sn,b);return 0;3, 运行结果:4,学生成绩单制作1, 流程图: Return 0 2, 程序:#includeStructStudent /定义结构体char number10;char name10;int score3;float average;student10;int main()in
13、t i,j,t;for(i=0;i10;i+) /初始化结构体printf(n输入student%d成绩:n,i+1);printf(number:);scanf(%s,studenti.number);printf(name:); /存放10个学生的学号,姓名,三门课的成绩scanf(%s,);for(j=0;j3;j+)printf(score %d:,j+1);scanf(%d,&studenti.scorej);studenti.average=(studenti.score0+studenti.score1+studenti.score2)/3.0;prin
14、tf(average:%f,studenti.average); printf(n); printf(输出数学成绩最高的学生的学号、姓名、以及该门课程的成绩:n); /输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩int max=0,max_math=0,max_chinese=0,max_english=0,max_average=0,max_i=0; for(i=0;i10;i+)if(max_mathstudenti.score0)max_math=studenti.score0;max_i=i; printf(number=%s,name=%s,max_math=%dn,st
15、udentmax_i.number,studentmax_,studentmax_i.score0); printf(输出中文成绩最高的学生的学号、姓名、以及该门课程的成绩:n);for(i=0;i10;i+)if(max_chinesestudenti.score1)max_chinese=studenti.score1;max_i=i; printf(number=%s,name=%s,max_chinese=%dn,studentmax_i.number,studentmax_,studentmax_i.score1); printf(输出中文成绩最高的学生的学号
16、、姓名、以及该门课程的成绩:n);for(i=0;i10;i+)if(max_englishstudenti.score2)max_english=studenti.score0;max_i=i; printf(number=%s,name=%s,max_english=%dn,studentmax_i.number,studentmax_,studentmax_i.score2); printf(输出三门课程的平均分数最高的学生的学号、姓名及其平均分:n); /输出三门课程的平均分数最高的学生的学号、姓名及其平均分 for(i=0;i10;i+)if(max_averagestudenti.average)max_average=studenti.average;max_i=i; printf(number=%s,name=%s,max_average=%fn,studentmax_i.number,studentmax_,studentmax_i.average); for(i=0;i9;i+) /将10个学生按照平均分数从高到低进行排序for(j=0;j9-i;j+)if(studentj.averagestudentj+1.average)t=studentj.average;studentj.aver
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026春季中国工商银行江苏省分行校园招聘460人备考题库含完整答案详解(历年真题)
- 2026招商银行泉州分行社会招聘备考题库附参考答案详解【典型题】
- (新教材)2026人教版二年级下册数学 第7课时 10000 以内数的写法 课件
- 雨课堂学堂在线学堂云《金融学(黑龙江工商学院)》单元测试考核答案
- 海洋能设备研发合同协议
- 外墙防水施工方案
- 云南省昆明市西山区2024-2025学年八年级下学期7月期末道德与法治试题(无答案)
- 检测检验服务合同简易版
- 2025-2026学年内蒙古包头市青山区七年级(上)期末历史试卷(含答案)
- 2026年美发会员合同(1篇)
- 第二章 教育研究的选题与设计
- 新改版苏教版四年级下册科学全册知识点(精简版)
- 流程图绘制培训
- 口腔颌面外科学课件:颌骨骨髓炎
- 胃malt淋巴瘤临床与诊治进展
- 上海市初中物理竞赛“大同杯”历年真题分类汇编(共9个)学生版+解析版
- 2023年广东高考英语听说考试真题D录音原文与参考答案
- 《史记》上册注音版
- 承包人实施计划及施工组织设计
- 《草船借箭》【市一等奖】
- d-地舒单抗注射液说明书
评论
0/150
提交评论