本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。
欢迎大家订阅我的专栏:算法题解:C++与Python实现!
附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总
【题目来源】
【题目描述】
给定一个 5 × 5 5\times 5 5×5 的矩阵(数学上,一个 r × c r\times c r×c 的矩阵是一个由 $r $ 行 c c c 列元素排列成的矩形阵列),将第 n n n 行和第 m m m 行交换,输出交换后的结果。
【输入】
输入共 6 6 6 行,前 5 5 5 行为矩阵的每一行元素,元素与元素之间以一个空格分开。
第 6 6 6 行包含两个整数 m , n m, n m,n,以一个空格分开 ( 1 ≤ m , n ≤ 5 ) (1\le m, n\le 5) (1≤m,n≤5)。
【输出】
输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开。
【输入样例】
1 2 2 1 2
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
3 0 8 2 4
1 5
【输出样例】
3 0 8 2 4
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
1 2 2 1 2
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[6][6], m, n;
for(int i = 1; i <= 5; ++i)//输入矩阵
for(int j = 1; j <= 5; ++j)
cin >> a[i][j];
cin >> m >> n;
for(int j = 1; j <= 5; ++j)//遍历列,交换第m行与第n行
swap(a[m][j], a[n][j]);
for(int i = 1; i <= 5; ++i)//输出矩阵
{
for(int j = 1; j <= 5; ++j)
cout << a[i][j] << ' ';
cout << endl;
}
return 0;
}
【运行结果】
1 2 2 1 2
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
3 0 8 2 4
1 5
3 0 8 2 4
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
1 2 2 1 2