C语言数组、函数的一个例子
Task2
2011.7.18 1.本程序有8项功能:
1. 根据学号查询学生成绩
2. 根据课程号统计成绩
3. 根据课程号和学号查询成绩
4. 成绩录入
5. 根据学号查询该学生所有课程中的最高分
6. 根据学号查询该学生所有课程中的最低分
7. 根据课程号找出这门课程中的最高分及相应的学号
8. 根据课程号找出这门课程中的最低分及相应的学号
0. 退出
用数组来实现
输出时显示:
学号课程.......
0 54 ........
#include"stdio.h"
int a[1001][3];
int z;
void searchsnum(int snum)/*根据学号查询学生成绩*/
{
int i=0;
printf("学生的成绩为:\n学号课程号成绩\n");
do
{
if(a[i][0]==snum)
{
printf(" %d %d %d\n\n",a[i][0],a[i][1],a[i][2]);
}
i++;
}while(i } void search(int snum,int cnum) /*根据课程号和学号查询成绩*/ { int i=0; printf("学生的成绩为:\n学号课程号成绩\n"); do { if(a[i][0]==snum&&a[i][1]==cnum) { printf(" %d %d %d\n\n",a[i][0],a[i][1],a[i][2]); } i++; }while(i } void statistics(int cnum)/*根据课程号统计成绩*/ { int i; printf("学生的成绩为:\n学号课程号成绩\n"); for(i = 0;i <= z;i++) { if(a[i][1]==cnum) { printf(" %d %d %d\n\n",a[i][0],a[i][1],a[i][2]); } } } void max(int snum)/*根据学号查询该学生所有课程中的最高分*/ { int i,j; int b=0; printf("学生所有课程中最高分为:\n课程号成绩\n"); for(i = 0;i <= z;i++) { if(a[i][0]==snum&&a[i][2]>b) { b=a[i][2]; j=i; } } printf(" %d %d\n\n",a[j][1],b); } void min(int snum)/*根据学号查询该学生所有课程中的最低分*/ { int i,j; int b=1000; printf("学生所有课程中最低分为:\n课程号成绩\n"); for(i = 0;i <= z;i++) { if(a[i][0]==snum&&a[i][2] { b=a[i][2]; j=i; } } printf(" %d %d\n\n",a[j][1],b); } void maxnum(int cnum)/*根据课程号找出这门课程中的最高分及相应的学号*/ { int i,j; int b=0; printf("学生%d号课程中最高分为:\n学号成绩\n",cnum); for(i = 0;i <= z;i++) { if(a[i][1]==cnum&&a[i][2]>b) { b=a[i][2]; j=i; } } printf(" %d %d\n\n",a[j][0],b); } void minnum(int cnum)/*根据课程号找出这门课程中的最低分及相应的学号*/ { int i,j; int b=1000; printf("学生%d号课程中最低分为:\n学号成绩\n",cnum); for(i = 0;i <= z;i++) { if(a[i][1]==cnum&&a[i][2] { b=a[i][2]; j=i; } } printf(" %d %d\n\n",a[j][0],b); } void main() { int i,c,snum,cnum; lab1: printf("请选择操作:\n************************************************\n"); printf("1.输入成绩\n"); printf("2.根据学号查询学生成绩\n"); printf("3.根据课程号和学号查询成绩\n"); printf("4.根据课程号统计成绩\n"); printf("5.根据学号查询该学生所有课程中的最高分\n"); printf("6.根据学号查询该学生所有课程中的最低分\n"); printf("7.根据课程号找出这门课程中的最高分及相应的学号\n"); printf("8.根据课程号找出这门课程中的最低分及相应的学号\n"); printf("0.退出\n"); printf("************************************************\n"); scanf("%d",&c); switch(c) { case 1: printf("请输入所要录入成绩的个数:\n"); scanf("%d",&z); printf("请依次输入学号\n"); for(i = 0;i <= z-1;i++) { scanf("%d",&a[i][0]); } printf("请依次输入课程号\n"); for(i = 0;i <= z-1;i++) { scanf("%d",&a[i][1]); } printf("请依次输入成绩\n"); for(i = 0;i <= z-1;i++) { scanf("%d",&a[i][2]); } printf("您输入的数据为:\n学号课程号成绩\n"); for(i = 0;i <= z-1;i++) { printf(" %d %d %d\n",a[i][0],a[i][1],a[i][2]); } break; case 2: printf("请输入所要查询的学号:\n"); scanf("%d",&snum); searchsnum(snum); break; case 3: printf("请输入所要查询的学号和课程号,以逗号分隔:\n"); scanf("%d,%d",&snum,&cnum); search(snum,cnum); break; case 4: printf("请输入所要查询的课程号:\n"); scanf("%d",&cnum); statistics(cnum); break; case 5: printf("请输入所要查询的学号:\n"); scanf("%d",&snum); max(snum); break; case 6: printf("请输入所要查询的学号:\n"); scanf("%d",&snum); min(snum); break; case 7: printf("请输入所要查询的课程号:\n"); scanf("%d",&cnum); maxnum(cnum); break; case 8: printf("请输入所要查询的课程号:\n"); scanf("%d",&cnum); minnum(cnum); break; case 0: exit(1); break; default: printf("error!\n"); } goto lab1; }