[例5-7] 数列排序,采用选择法实现对有5个数的数列进行排序。 选择法的算法思想是:(降序) 1. 将待排序的n个数放入数组n u m中,即n u m [ 0 ]、n u m [ 1 ]、. . . n u m [ n - 1 ]。 2. 让n u m [ 0 ]与后续n u m [ 1 ] . . . n u m [ n - 1 ]依次比较,保证大数在前、小数在后。此次比较, n u m [ 0 ]是数组中最大。 3. 余下n - 1个元素 4. num[1]与n u m [ 2 ] . . . n u m [ n - 1 ]依次比较,大数在前、小数在后,此次n u m [ 1 ]是全部元素的 最大。 n u m [ n - 2 ]与n u m [ n - 1 ]比较,n u m [ n - 2 ]存大数。 n u m [ n - 1 ]存小数,比较结束,整理有序。 例:待排序5个数为: 44 76 82 63 71 一趟排序: 1次比较:76 44 82 63 71 2次比较:82 44 76 63 71 3次比较:82 44 76 63 71 4次比较:82 44 76 63 71 最大 #include <stdio.h> m a i n ( ) { int num[5]; int i,j ; int temp; num[0]=94; num[1]=76; num[2]=82; num[3]=63; num[4]=71; for(i=0; i<4; i++) for(j=i+1; j<5; j++) { i f ( n u m [ i ] > n u m [ j ] ) { t e m p = n u m [ i ] ; n u m [ i ] = n u m [ j ] ; n u m [ j ] = t e m p ; } } for(i=0; i<5; i++) p r i n t f ( " % 4 d " ,n u m [ i ] ) ; p r i n t f ( " o k / n " ) ; } 这是一个非常简单的排序程序,我们只需稍加扩展就可以编制出很多功能强大的管理程 序,如学生统计总分、平均排列年级名次等。 [例5-8] 简易学生成绩查询系统。 图5 - 3为学生成绩登记表,下例程序完成如下功能: 1) 根据输入的学生学号,给出各次考试成绩及平均成绩; 2) 根据输入考试的次数,打印出该次考试中每个学生的成绩,并给出平均分; 3) 根据学号查出学生某次考试成绩; 4) 录入考试成绩。 #include <stdio.h> m i a n ( ) { int select; int i,j ; int score[5][7]; int average=0; int sum=0; d o { printf("本程序有4项功能/n"); printf("1、根据学号查询学生成绩/n"); printf("2、根据考试号统计成绩/n"); printf("3、根据考试号和学号查询成绩/n"); printf("4、成绩录入/n"); printf("0、退出/n"); printf("请输入选择(0-4):"); scanf("%d/n",&select); switch(select) { case0: printf("OK/n"); exit(0) break; case1: printf("输入学号:"); scanf("%d/n",&i); for(j=1;j<7;j++) { printf("第%d科成绩是%d/n",j,score[i][j]); sum+=score[i][j]; } average=sum/6; printf("学生的平均成绩是%d/n",average); break; case2: printf("输入考试号:"); scanf("%d/n",&j); for(i=1;i<5;i++) { printf("第%d号学生本科成绩是%d/n",i,score[i][j]); sum+=score[i][j]; } average=sum/4; printf("本科平均成绩是%d/n",average); break; case3: printf("输入学号和考试号:"); scanf("%d%d/n",&i,&j); printf("第%d号学生的第%d科考试成绩是%d/n",i,j, score[i][j]); break; case4: printf("请输入成绩/n"); for(i=1;i<5;i++) for(j=1;j<7;j++) scanf("%d/n",&score[i][j]); break; default: break; }while(1); } 从本例中可以看出,当涉及到二维数组时,通常用两重for循环来存取元素。
 
说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
2/2 首页 上一页 1 2 |