1. id 类型必须 string
  2. 多行输入注意 换行符
    1. for(int i = 0; i < 3; ++i) std::cin >> student.scores[i];
    2. 可以用:
    3. std::cin >> student.scores[0] >> …[1] >> …[2]
    1. struct Student {
    2. int scores[3]; //三科 成绩
    3. };
    4. 可以用:
    5. std::array<int, 3> scores;
代码
  1. #include <iostream>
  2. #include <string>
  3. #include <array>
  4. #include <vector>
  5. struct Student {
  6. std::string id; //学号
  7. std::string name; //姓名
  8. std::array<int, 3> scores; //三科 成绩;范围 0-2
  9. };
  10. void input(Student& student) {
  11. std::cin >> student.id >> student.name;
  12. std::cin.ignore (); //把换行符忽略掉
  13. for(int i = 0; i < 3; ++i) std::cin >> student.scores[i];
  14. }
  15. void print(Student& student) {
  16. std::cout << student.id << "," << student.name << ",";
  17. bool sw = true; //开关
  18. for(int i = 0; i < 3; ++i) {
  19. if(!sw) std::cout << ","; //if(sw) true 会执行;if(!sw) false 会执行 = sw 非零值;!sw 零值
  20. std::cout << student.scores[i];
  21. sw = false;
  22. }
  23. std::cout << std::endl;
  24. }
  25. int main() {
  26. int num;
  27. std::cin >> num;
  28. /*题目 N<100*/
  29. if(num >= 100) return 1;
  30. std::vector<Student> student (num); //动态拓展内存
  31. /*读取*/
  32. for (int i = 0; i < num; ++i) input (student[i]);
  33. /*打印*/
  34. for (int i = 0; i < num; ++i) print (student[i]);
  35. return 0;
  36. }
点赞(0)
 

9.9 分

0 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论