院校机试刷题第六天: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;
}
相关推荐
go5463158465几秒前
基于深度学习的食管癌右喉返神经旁淋巴结预测系统研究
图像处理·人工智能·深度学习·神经网络·算法
aramae11 分钟前
大话数据结构之<队列>
c语言·开发语言·数据结构·算法
大锦终22 分钟前
【算法】前缀和经典例题
算法·leetcode
想变成树袋熊1 小时前
【自用】NLP算法面经(6)
人工智能·算法·自然语言处理
cccc来财1 小时前
Java实现大根堆与小根堆详解
数据结构·算法·leetcode
Coovally AI模型快速验证2 小时前
数据集分享 | 智慧农业实战数据集精选
人工智能·算法·目标检测·机器学习·计算机视觉·目标跟踪·无人机
墨尘游子2 小时前
目标导向的强化学习:问题定义与 HER 算法详解—强化学习(19)
人工智能·python·算法
恣艺3 小时前
LeetCode 854:相似度为 K 的字符串
android·算法·leetcode
予早3 小时前
《代码随想录》刷题记录
算法
满分观察网友z3 小时前
别总想着排序!我在数据看板中悟出的O(N)求第三大数神技(414. 第三大的数)
算法