一、1134矩阵翻转
1.题目描述


2.解题思路
很简单的模拟题,甚至只是上下翻转,遍历输出的时候先把最下面那一行输出即可。
3.代码
cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<vector<int>> matrix(n, vector<int> (n, 0));
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
cin >> matrix[i][j];
}
}
for(int i = n - 1; i >= 0; i--) {
for(int j = 0; j < n; j++) {
cout << matrix[i][j] << ' ';
}
cout << endl;
}
return 0;
}
二、1052学生成绩管理
1.题目描述



2.解题思路
涉及到结构体的一些复习,不过具体怎么写大体的思路都在题目要求里写了,主要就是结构体相关输入输出和数据处理。
关键点:如何保证输出的数据保留一位小数。引入头文件<iomanip>,cout中设置setprecision即可。 cout << fixed << setprecision(1) << students[i].xingming......
3.代码
ps:有的垃圾编译器连INT_MIN都识别不了。
cpp
#include <iostream>
#include <string>
#include <vector>
#include <iomanip>
using namespace std;
struct student{
string xuehao;
string banji;
string xingming;
double grade[3];
double avg;
};
vector<student> shuru(vector<student> students, int n) {
for(int i = 0; i < n; i++) {
cin >> students[i].xuehao >> students[i].banji >> students[i].xingming;
for(int j = 0; j < 3; j++) {
cin >> students[i].grade[j];
}
}
return students;
}
vector<student> avgGrade(vector<student> students, int n) {
double sum = 0;
for(int i = 0; i < n; i++) {
sum = 0;
for(int j = 0; j < 3; j++) {
sum += students[i].grade[j];
}
students[i].avg = sum / 3;
}
return students;
}
int main() {
int n;
cin >> n;
vector<student> students(n);
students = shuru(students, n);
students = avgGrade(students, n);
for(int i = 0; i < n; i++) {
cout << fixed << setprecision(1) << students[i].xingming << ' ' << students[i].avg << endl;
}
int index = 0;
double maxAvg = INT_MIN;
for(int i = 0; i < n; i++) {
if(students[i].avg > maxAvg) {
index = i;
maxAvg = students[i].avg;
}
}
cout << fixed << setprecision(1) << students[index].xuehao << ' '<< students[index].banji <<' '
<< students[index].xingming <<' '<< students[index].grade[0] <<' '
<< students[index].grade[1] <<' '<< students[index].grade[2] << ' '
<< students[index].avg;
return 0;
}
三、1409对称矩阵
1.题目描述


2.解题思路
很弱智
简单的模拟题,对称矩阵就是判断a[i][j]和a[j][i]是否相等,有一个不相等就不是对称矩阵。
3.代码
cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
while(cin >> n) {
int flag = 1;
vector<vector<int>> matrix(n, vector<int> (n, 0));
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
cin >> matrix[i][j];
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(matrix[i][j] != matrix[j][i]) {
flag = 0;
}
}
}
if(flag == 0) {
cout << "No!" << endl;
} else {
cout << "Yes!"<< endl;
}
}
return 0;
}