题目
现有4个学生,每个学生包含学号、三门课成绩和平均成绩等4个信息。首先输入各位学生的学号、三门课成绩;然后计算出每个学生的平均成绩;最后输入一个学号,当该学号存在时,输出对应学生的所有信息,否则,输出“该学号学生不存在!”
程序运行情况:
第一步,输出两行提示信息:
请依次输入4位学生信息:
学号成绩1 成绩2 成绩3
第二步,输入各位学生的学号、三门课成绩,例如:
034 63 78 82
045 70 70 85
052 80 82 92
100 56 85 78
第三步,输出一行提示信息:
请输入需要查询的学生学号:
第四步,输入学号,例如:
052
第五步,如果该学号存在时,先输出一行提示信息,然后给出对应学生所有信息,例如:
学号成绩1 成绩2 成绩3 平均分
052 80 82 92 84.7
如果第四步输入的学号不存在,直接输入“该学号学生不存在!”
编程要求:
描述学生的结构体定义如下:
typedef struct
{
charnum[20];
intscore[3];
doubleaver;
}STU;
#include<stdio.h> typedef struct { char num[20]; int score[3]; double aver; }STU; void input(STU std[] ,int count) { printf("请依次输入%d位学生信息:\n",count); printf("学号 成绩1 成绩2 成绩3\n"); for(i=0;i<count;i++) { scanf("%s",stu[i].num); for(j=0;j<3;j++) { scanf("%d",&stu[i].score[j]); } } } void caculAver(STU stu[],int count) { int i,j; double aver; for (i=0;i<count;i++) { aver=0; for(j=0;j<3;j++) aver+=stu[i].score[j]; stu[i].aver=aver/3; } } void search(char*num,STU stu[],int count) { int i,j,isfound=0; for(i=0;i<count&&!isfound;i++) { if(strcmp(stu[i].num,num)==0) { printf("学号 成绩1 成绩2 成绩3 平均分\n"); printf("%s",stu[i].num); for(j=0;j<3;j++) printf("%7.1f\n",stu[i].aver); isfound=1; } } if(!isfound) printf("不存在该学号的学生\n"); } int main() { STU stu[4]; char num[20]; input(stu,4); caculAver(stu,4); printf("请输入需要查询的学生学号;"); scanf("%s",num); search(num,stu,4); return 0; }