一、1134矩陣翻轉
1.題目描述
2.解題思路
很簡單的模擬題,甚至只是上下翻轉,遍歷輸出的時候先把最下面那一行輸出即可。
3.代碼
#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都識別不了。
#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.代碼
#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;
}