3 solutions
-
1
这个题还行,仔细一点就可以
` #include<bits/stdc++.h> using namespace std; struct s{ char na[100]; int a; double c[15]; }stu[105]; int main(){ //std::ios::sync_with_stdio(false); int x,y,z; cin>>x>>y>>z; for(int i=0;i<x;i++){ cin>>stu[i].na>>stu[i].a; for(int j=0;j<y;j++){ double sum=0,aa; for(int k=0;k<z;k++){ cin>>aa; sum+=aa; } stu[i].c[j]=sum*1.0/z; } } int t; while(cin>>t&&t){ int flag=1; for(int i=0;i<x;i++){ if(t==stu[i].a) { // cout<<stu[i].na<<" "; printf("%s ",stu[i].na); for(int j=0;j<y;j++) { printf("%.2lf",stu[i].c[j]); if(j<y-1) printf(" "); } cout<<endl; flag=0; break; } } if(flag==1) cout<<"No such Student!"<<endl; } return 0; } `
-
1
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
-
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
- 1
Information
- ID
- 148
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 8
- Tags
- # Submissions
- 154
- Accepted
- 18
- Uploaded By