院校机试刷题第六天: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;
}
相关推荐
GIS小天11 分钟前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年7月4日第128弹
人工智能·算法·机器学习·彩票
满分观察网友z29 分钟前
开发者的“右”眼:一个树问题如何拯救我的UI设计(199. 二叉树的右视图)
算法
森焱森2 小时前
无人机三轴稳定化控制(1)____飞机的稳定控制逻辑
c语言·单片机·算法·无人机
循环过三天2 小时前
3-1 PID算法改进(积分部分)
笔记·stm32·单片机·学习·算法·pid
闪电麦坤952 小时前
数据结构:二维数组(2D Arrays)
数据结构·算法
凌肖战2 小时前
力扣网C语言编程题:快慢指针来解决 “寻找重复数”
c语言·算法·leetcode
埃菲尔铁塔_CV算法3 小时前
基于 TOF 图像高频信息恢复 RGB 图像的原理、应用与实现
人工智能·深度学习·数码相机·算法·目标检测·计算机视觉
NAGNIP4 小时前
一文搞懂FlashAttention怎么提升速度的?
人工智能·算法
Codebee4 小时前
OneCode图生代码技术深度解析:从可视化设计到注解驱动实现的全链路架构
css·人工智能·算法