原题链接:[编程入门]结构体之成绩记录
- id 类型必须 string
- 多行输入注意 换行符
for(int i = 0; i < 3; ++i) std::cin >> student.scores[i];
可以用:
std::cin >> student.scores[0] >> …[1] >> …[2]
struct Student {
int scores[3]; //三科 成绩
};
可以用:
std::array<int, 3> scores;
代码
#include <iostream>
#include <string>
#include <array>
#include <vector>
struct Student {
std::string id; //学号
std::string name; //姓名
std::array<int, 3> scores; //三科 成绩;范围 0-2
};
void input(Student& student) {
std::cin >> student.id >> student.name;
std::cin.ignore (); //把换行符忽略掉
for(int i = 0; i < 3; ++i) std::cin >> student.scores[i];
}
void print(Student& student) {
std::cout << student.id << "," << student.name << ",";
bool sw = true; //开关
for(int i = 0; i < 3; ++i) {
if(!sw) std::cout << ","; //if(sw) true 会执行;if(!sw) false 会执行 = sw 非零值;!sw 零值
std::cout << student.scores[i];
sw = false;
}
std::cout << std::endl;
}
int main() {
int num;
std::cin >> num;
/*题目 N<100*/
if(num >= 100) return 1;
std::vector<Student> student (num); //动态拓展内存
/*读取*/
for (int i = 0; i < num; ++i) input (student[i]);
/*打印*/
for (int i = 0; i < num; ++i) print (student[i]);
return 0;
}
9.9 分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复