名人说:博学之,审问之,慎思之,明辨之,笃行之。——《中庸》
进度:C/C++语言100题练习计划专栏,目前95/100
Problem Description
给定一个 5 × 5 5 \times 5 5×5 的矩阵(数学上,一个 r × c r \times c r×c 的矩阵是一个由 r r r 行 c c c 列元素排列成的矩形阵列),将第 m m m 行和第 n n n 行交换,输出交换后的结果。
Input
输入共 6 6 6 行,前 5 5 5 行为矩阵的每一行元素,元素与元素之间以一个空格分开。
第 6 6 6 行包含两个整数 m m m、 n n n,以一个空格分开( 1 ≤ m , n ≤ 5 1 \le m,n \le 5 1≤m,n≤5)。
Output
输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开。
Sample Input
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
Sample Output
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
using namespace std;
int a[5][5],m,n;//矩阵,交换行m、n
int main()
{
int i,j;
for(i=0;i<5;i++)//行
{
for(j=0;j<5;j++)//列
{
cin>>a[i][j];//读入矩阵
}
}
//输入要交换的行
cin>>m>>n;
m--;n--;//由于数组下标是从0开始的,因此在此处-1
for(i=0;i<5;i++)
{
swap(a[n][i],a[m][i]);//借助swap函数实现交换
}
for(i=0;i<5;i++)//行
{
for(j=0;j<5;j++)//列
{
cout<<a[i][j]<<" ";
}
cout<<endl;//输出换行
}
return 0;
}
★关于本题思路及举例:
1、本题思路简述
STL又称为标准模板库,是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。
swap()就是其中的一个 STL 库函数。
swap(a,b) 表示将 a 与 b 的值互换。
借助for循环输入矩阵,之后按照题意将 n,m 行进行互换即可。
2、举例
如下,矩阵:
1 2 3
4 5 6
7 8 9
假如m=1,n=3,说明1和3行要进行交换。
转换后的结果如下:
7 8 9
4 5 6
1 2 3
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
--------------------------------
Process exited after 1.577 seconds with return value 0
请按任意键继续. . .
Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
如果对大家有帮助的话,希望大家能多多点赞+关注!这样我动力会更足哦! ღ( ´・ᴗ・` )比心