请各位帮忙给个具体的思路,
设计一个结构体数组,用于存储N个学生的信息,每个学生信息包括学号(num)、姓名(name[20])、性别(sex)、年龄(age)、三门课成绩(score[3])要求程序具有如下功能:程序运行时,首先显示一个菜单,菜单内容包括:
输入学生信息
检索学生信息
从学号、姓名、年龄和某门课程成绩中选择一项,进行学生信息排序
选择了某项功能,完成后,可以再返回菜单
#include<stdio.h> #include<stdlib.h> struct student { int mumber[1]; //学号 char name[10]; //名字 double score[4]; //成绩 }; typedef struct student SS; SS stud[10],*st=stud; int i; int input(); int output(); int count(); int main() { i=4; while(i){ printf("请输入您要执行任务前的数值\n"); printf("1 输入学生信息\n"); printf("2 输出学生信息\n"); printf("3 退出\n"); scanf("%d",&i); if(i==1) input(); if(i==2){ output(); count(); } if(i==3) exit(0); } return 0; } int input() { i=0; printf("请注意输入学生的成绩格式为 成绩1,成绩2,成绩3,\n"); for(i;i<5;i++){ printf("请输入第%d名同学的信息\n",i+1); printf("请输入学号\n"); scanf("%d",&stud[i].mumber[0]); printf("请输入姓名\n"); scanf("%s",stud[i].name); printf("请输入成绩\n"); scanf("%lf,%lf,%lf",&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]); stud[i].score[3]=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3; } return 0; } int output() { i=0; printf("-------------------------------------------------\n"); printf("| 学号"); printf("| 姓名 "); printf("| 成绩1"); printf("| 成绩2"); printf("| 成绩3"); printf("| 平均成绩|\n"); for(i;i<5;i++){ printf("| %4d",stud[i].mumber[0]); printf("| %9s",stud[i].name); printf("| %4.2lf",stud[i].score[0]); printf("| %4.2lf",stud[i].score[1]); printf("| %4.2lf",stud[i].score[2]); printf("| %4.2lf |",stud[i].score[3]); printf("\n"); } printf("-------------------------------------------------\n"); return 0; } int count() { int j,k; double max; i=0; printf("其中按照平均成绩排序为\n"); printf("-------------------------------------------------\n"); printf("| 学号"); printf("| 姓名 "); printf("| 成绩1"); printf("| 成绩2"); printf("| 成绩3"); printf("| 平均成绩|\n"); max=0; for(i;i<5;i++){ for(j=0;j<5;j++){ if(stud[j].score[3]>=max){ max=stud[j].score[3]; k=j; } } printf("| %4d",stud[k].mumber[0]); printf("| %9s",stud[k].name); printf("| %4.2lf",stud[k].score[0]); printf("| %4.2lf",stud[k].score[1]); printf("| %4.2lf",stud[k].score[2]); printf("| %4.2lf |",stud[k].score[3]); printf("\n"); stud[k].score[3]=-1; max=0; } printf("-------------------------------------------------\n"); return 0; }