1、将奇偶排序算法升序改为降序。2用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分)3编译、链接以上算法,按要求写出实验报告(25)。4. 修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。5用A4纸打印输出实验报告。三、实验报告说明实验数据可自定义,每种排序算法数据要求均不重复。(1) 实验题目:N门课程学生成绩名次排序算法实现;(2) 实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性;(3) 实验要求:对算法进行上机编译、链接、运行;(4) 实验环境(Windows XP-sp3,Visual c+);(5) 实验算法(给出
2、四种排序算法修改后的全部清单);(6) 实验结果(四种排序算法模拟运行后的实验结果);(7) 实验体会(文字说明本实验成功或不足之处)。 三、实验源程序(算法) Score.c#include stdio.hstring.h#define M 6#define N 3struct student char name10;int number;int scoreN+1; /*scoreN为总分,score0-score2为学科成绩*/ stuM;void changesort(struct student a,int n,int j)int flag=1,i;struct student tem
3、p;while(flag) flag=0;for(i=1;iai+1.scorej) temp=ai;ai=ai+1;ai+1=temp;flag=1;for(i=0;iif (ai.scorejai+1.scorej) void print_score(struct student a,int n,int j) int i,k;printf(“ 奇偶交换成绩 %d 排序表,j+1);printf(n); 名次学号姓名分数nk=1;k if(i0&ai.scorej!=ai-1.scorej)k+;p rintf( %4d ,k);%4d,ai.number); %s,ai.name); %6
4、d,ai.scorej);main() int i,j,k;for (i=0;i printf(请输入第 %d 名学生分数: ,i+1); printf(姓名:s canf(%s,stui.name);编号:scanf(,&stui.number);数据结构:stui.score0);离散数学: scanf(stui.score1);大学英语:stui.score2);i stui.scoreN=0;for(j=0;jstui.scoreN+=stui.scorej;changesort(stu,M,N); /*对总分进行排序*/ 学生总分成绩排序表n 名次学号姓名数据结构离散数学大学英语总分
5、n k=1;i if(istui.scoreN!=stui-1.scoreN) %4d,stui.number);jprintf(,stui.scorej);changesort(stu,M,0); /*对数据结构成绩进行排序*/print_score(stu,M,0); /*输出数据结构前 3 名同学成绩*/changesort(stu,M,1); /*对离散数学成绩进行排序*/print_score(stu,M,1); /*输出离散数学前 3 名同学成绩*/changesort(stu,M,2); /*对大学英语成绩进行排序*/print_score(stu,M,2); /*输出大学英语前
6、 3 名同学成绩*/ 源代码结果:请输入第1 名学生分数: 姓名: 史孟晨 01 87 90 78请输入第2 名学生分数: 袁欣 02 80 92请输入第 3 名学生分数: 赵宇 03 88 76 95请输入第4 名学生分数: 滕芷 04 79 84请输入第5 名学生分数: 张一析 05 68 91请输入第6 名学生分数: 白晓彤 06 学生总分成绩排序表 名次学号姓名数据结构离散数学大学英语总分1 5 张一析78 68 91 2372 2 袁欣78 80 92 2503 4 滕芷79 84 88 2514 6 白晓彤88 76 90 2545 1 史孟晨87 90 78 2556 3 赵宇8
7、8 76 95 259 奇偶交换成绩1 排序表名次学号姓名分数1 5 张一析781 2 袁欣782 4 滕芷793 1 史孟晨87奇偶交换成绩2 排序表1 5 张一析682 6 白晓彤762 3 赵宇763 2 袁欣80奇偶交换成绩3 排序表1 1 史孟晨782 4 滕芷883 6 白晓彤90Press any key to continue #include void changesort(struct student a,int n,int j);void print_score(struct student a,int n,int j);char name10; /*scoreN为总分,score0-score2为学科成绩*/stuM;int i,j,k;i请输入第%d 名学生分数:stui.scoreN=0; changesort(stu,M,N); /*对总分进行排序*/ k=0;if(i,stui-1.number);,stui-1.name);j,stui-1.scorej); /*输出数据结构前3 名同学成绩*/ /*输出离散数学前3 名同学成绩*/ /*输出大学英语前3 名同学成绩*/int flag=1,i;flag=0;iif (ai.scorej temp=ai; ai+1=temp;int i,k; 奇偶交换成绩%d 排序表for
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1