3 solutions
-
0
P1152 学生成绩 题解
题意分析
这个题的题意已经很清晰的给出学生信息的读取,本来想出一道二维数组嵌套结构体的,但是出完才发现可以用一维AC。
这里直接讲最初的思路。我们创建一个学生的结构体,包含题干上给出的所有信息(其中的学科成绩信息其实可以直接用总分或者平均分来记录,所以二维转一维)。
我们创建一个学生的数组,依次存放学信息。之后,用一个死循环来查询学生信息。
可行代码
#include <stdio.h> const int MAX = 100; const int SUBJECT = 100; struct Stu { int id; char name[10]; // 名字 int score[SUBJECT][MAX]; // 学科数/学期数 double ave[SUBJECT]; }; int main() { int stuNum, subject, yearMax; scanf("%d%d%d", &stuNum, &subject, &yearMax); Stu stu[stuNum]; // 输入学生信息 for (int i = 0; i < stuNum; i++) { scanf(" %s%d", stu[i].name, &stu[i].id); for (int j = 0; j < subject; j++) { double sum = 0; for (int k = 0; k < yearMax; k++) { scanf("%d", &stu[i].score[j][k]); sum += stu[i].score[j][k]; } stu[i].ave[j] = sum / yearMax; } } // 查询 while (1) { int checkId; scanf("%d", &checkId); if (checkId == 0) break; bool flag = false; for (int i = 0; i < stuNum; i++) { if (stu[i].id == checkId) { flag = true; printf("%s ", stu[i].name); for (int j = 0; j < subject; j++) printf("%.2lf%c", stu[i].ave[j], j < subject - 1 ? ' ' : '\n'); break; } } if (!flag) { printf("No such Student!\n"); } } return 0; }
END 明明很简单,为什么不先做我的,eeeee
Information
- ID
- 148
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 8
- Tags
- # Submissions
- 154
- Accepted
- 18
- Uploaded By