院校机试刷题第六天:1134矩阵翻转、1052学生成绩管理、1409对称矩阵

一、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;
}
相关推荐
weixin_395448916 分钟前
main.c_cursor_0202
前端·网络·算法
senijusene12 分钟前
数据结构与算法:队列与树形结构详细总结
开发语言·数据结构·算法
杜家老五13 分钟前
综合实力与专业服务深度解析 2026北京网站制作公司六大优选
数据结构·算法·线性回归·启发式算法·模拟退火算法
2301_7657031444 分钟前
C++与自动驾驶系统
开发语言·c++·算法
Ll13045252981 小时前
Leetcode二叉树 part1
b树·算法·leetcode
鹿角片ljp1 小时前
力扣9.回文数-转字符双指针和反转数字
java·数据结构·算法
热爱编程的小刘1 小时前
Lesson04---类与对象(下篇)
开发语言·c++·算法
有代理ip2 小时前
成功请求的密码:HTTP 2 开头响应码深度解析
java·大数据·python·算法·php
YYuCChi2 小时前
代码随想录算法训练营第三十四天 | 62.不同路径、63.不同路径||
算法
小明同学012 小时前
[C++进阶] 深度解析AVLTree
c++·算法·visualstudio