院校机试刷题第六天: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) << studentsi.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.解题思路

很弱智

简单的模拟题,对称矩阵就是判断aij和aji是否相等,有一个不相等就不是对称矩阵。

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;
}
相关推荐
GuWenyue2 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
我叫洋洋4 小时前
C ++ [ hello world ]
c语言·c++·算法
奋发向前wcx5 小时前
y1,y2总复习笔记5 2026.7.19
数据结构·笔记·算法
战族狼魂8 小时前
高频面试题精选:分治与AI Agent架构
人工智能·算法·大模型·大语言模型
李剑一8 小时前
你用过网易的将军令嘛?它底层实现账号保护的原理相当简单粗暴
算法
Scott9999HH8 小时前
告别流量波动玄学!从法拉第电磁定律到底层 C/C++ 流量累积算法,深度解密工业级电磁流量计选型与开发
c语言·c++·算法
中达瑞和-高光谱·多光谱9 小时前
1nm到8nm光谱分辨率,你的应用该选哪款光谱相机?
算法·高光谱·高光谱相机
香辣牛肉饭10 小时前
【算法】动态规划 最长公共子序列(LCS)
经验分享·笔记·算法·动态规划
旖-旎10 小时前
LeetCode 279:完全平方数(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题