1、C语言实习报告 设计报告一,实验目的:通过上机实习,熟练掌握循环语句、选择语句、指针以及结构体的运用技巧。在实习中通过实际操作,编写程序,发现问题,最后解决问题,提升对c语言实用性的理解,在实践中巩固各知识点。C语言就是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点,上机实习可以帮助我们更好地理解这种结构式的中级语言以及其各式各样的数据类型与高效率的运算程序,为我们进一步学习C+打下坚实基础。同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而且也让我们发现了一些自己的个人误区以及其她人容易犯的错误,从而在今后的学习中更加谨慎,达到事半功倍的效
2、果;通过询问老师,也让我们养成了不耻下问的好习惯,这将很有利于以后的学习。闲乐-一个人闲。不如大家一块儿乐二,总体设计: 1,学生成绩排名1,流程图: 假? 真? 假? 真? 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;j9-i;j+) if(ajaj+1) t=aj;aj=aj+1;aj+1=t;
3、/采用冒泡法,将学生成绩按照从高到低进行排序 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; break; printf(11个学生成绩数组:n); /输入1
4、1个学生成绩 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,流程图:Sort1 sort2 假? 真? Sort3 假? 假? 真? 真?2,程序:#includevoid sort1(int a10
5、) /定义函数 int i,j,t; printf(输入10个学生成绩:n); for(i=0;i10;i+) scanf(%d,&ai); /输入n个学生成绩 for(i=0;i10;i+) /冒泡法对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
6、(%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+) 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=
7、getchar(); printf(请输入学生个数n:n); scanf(%d,&n); printf(输入n个学生成绩:n); int i,j,t; for(i=0;in;i+) scanf(%d,&ai); if(style=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(aj
8、aj+1) t=aj;aj=aj+1;aj+1=t; printf(n个学生成绩排名就是:n); for(i=0;in;i+) /输出结果 printf(%5d,ai); printf(n);int main() /主函数 printf(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,运行结果
9、:3,用指针优化学生成绩排名1,流程图:Sort copy main 2,程序:#include#includevoid sort(int *p) /定义函数sort /将成绩数组按照从高到低进行排序,要求用函数实现 int i,j,t; 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;void copy(char *a,char *b) /定义函数copy for(;*a!=0;a+,b+) / 复制该字符串,用函数实现 *b=*a; *b=0;int main() i
10、nt i,j,t,stu10,*p; / 定义一个数组stu10存放10个学生的成绩 p=stu; printf(请输入10个数据:n); for(i=0;i10;i+) /从键盘输入数据,用指针实现 scanf(%d,p+i); printf(数组stu10的内容为: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)=*
11、(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); /调用函数sort printf(第三步内容放在函数中实现为: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); /调用函数copy printf(%sn,
12、b); return 0;3,运行结果:4,学生成绩单制作1,流程图: 2,程序:#includeStructStudent /定义结构体 char number10; char name10; int score3 ; float average; student10;int main() int 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(%
13、s,studenti、name); for(j=0;j3;j+) printf(score %d:,j+1); scanf(%d,&studenti、scorej); studenti、average=(studenti、score0+studenti、score1+studenti、score2)/3、0; printf(average:%f,studenti、average); printf(n); printf(输出数学成绩最高的学生的学号、姓名、以及该门课程的成绩:n); /输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩 int max=0,max_math=0,max_ch
14、inese=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,studentmax_i、number,studentmax_i、name,studentmax_i、score0); printf(输出中文成绩最高的学生的学号、姓名、以及该门课程的成绩:n); for(i=0;i10;i+) if(max_chinesestudenti、
15、score1) max_chinese=studenti、score1; max_i=i; printf(number=%s,name=%s,max_chinese=%dn,studentmax_i、number,studentmax_i、name,studentmax_i、score1); printf(输出中文成绩最高的学生的学号、姓名、以及该门课程的成绩:n); for(i=0;i10;i+) if(max_englishstudenti、score2) max_english=studenti、score0; max_i=i; printf(number=%s,name=%s,max_
16、english=%dn,studentmax_i、number,studentmax_i、name,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_i
17、、name,studentmax_i、average); for(i=0;i9;i+) /将10个学生按照平均分数从高到低进行排序 for(j=0;j9-i;j+) if(studentj、averagestudentj+1、average) t=studentj、average;studentj、average=studentj+1、average;studentj+1、average=t; printf( number name math Chinese English averagen); for(i=0;i10;i+) /输出排序后的结果 printf(%8s%8s%9d%9d%9d %6、2fn,studenti、number,studenti、name,studenti、score0,studenti、score1,studenti、score2,studenti、average); return 0;3,运行结果:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1