结构体的使用

xiaoxiao2021-02-28  119

题目

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

转载请注明原文地址: https://www.6miu.com/read-52062.html

最新回复(0)