题目
现有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;
}