13 条题解
-
10
#include <iostream> using namespace std; int a[10][10]; int main() { int n,m; for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 5; j++) { cin >> a[i][j]; } } cin >> n >> m; for (int i = 1; i <= 5; i++) { int temp = a[n][i]; a[n][i] = a[m][i]; a[m][i] = temp; } for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 5; j++) { cout << a[i][j] << " "; } cout << endl; } return 0; }
解析:
1.开数组用于存储矩阵。定义两个变量获取要交换的两行。
2.用循环嵌套获取矩阵的所有元素。
3.用循环遍历 n 行的五个元素,将对应的 m 行元素与其交换。
注意! 交换元素要有中间变量,不然会丢失一个变量(emmm……我记得好像有一个函数就是用来专门交换左右两个变量的值的,忘了叫啥名了,也有可能是python里的,同时学有点串)
4.回归正题,最后用循环挨个输出所有元素。
注意! 打完一行元素要打一个 endl 或 /n ,免得串成一行。
5.今天 10 点还在写题解,中途甚至浏览器都崩溃了一次,看我勤勤恳恳,点个赞吧👍 !
作者の吟唱:没有什么能够阻挡,我对题解的向往~
-
4
解析
将矩阵第n行和第m行交换位置,可以理解成将a[n][1~5]和a[m][1~5]交换位置。
所以可以编写循环,让i从1遍历到5,循环中交换a[n][i]和a[m][i]的值。
题解
#include <iostream> using namespace std; int a[10][10], n, m; int main() { for (int i = 1; i <= 5; i++) for (int j = 1; j <= 5; j++) cin >> a[i][j]; cin >> n >> m; for (int i = 1; i <= 5; i++) { int temp = a[n][i]; a[n][i] = a[m][i]; a[m][i] = temp; } for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 5; j++) { cout << a[i][j] << " "; } cout << endl; } return 0; }
-
1
#include <iostream> using namespace std; int a[10][10], n, m; int main() { for (int i = 1; i <= 5; i++) for (int j = 1; j <= 5; j++) cin >> a[i][j]; cin >> n >> m; for (int i = 1; i <= 5; i++) { int temp = a[n][i]; a[n][i] = a[m][i]; a[m][i] = temp; } for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 5; j++) { cout << a[i][j] << " "; } cout << endl; } return 0; }
一维数组
看解析:
把老邓第n行和第m行玄冥置换了(徐三石误入)
so可以编写for,让i从①遍历到⑤,循环中交换a[n][i]和a[m][i]的只
-
0
#include<iostream> using namespace std; int main() { int juzhen[5][5],di1,di2; for(int i=0;i<5;i++)//循环输入矩阵 { for(int j=0;j<5;j++) { cin >> juzhen[i][j]; } } cin >> di1 >> di2; for(int i=0;i<5;i++) { if (i==di1-1)//注意要是di1-1 { for(int j=0;j<5;j++) { swap(juzhen[di1-1][j],juzhen[di2-1][j]);//交换 } break;//可以直接跳出循环 } } for(int i=0;i<5;i++) { for(int j=0;j<5;j++) { cout << juzhen[i][j]<< " "; } cout << endl; }//输出矩阵 return 0; }
-
0
#include <bits/stdc++.h> using namespace std; int main() { int a[30]; int n, m; for (int i = 1; i <= 25; i++) { cin >> a[i]; } cin >> n >> m; for (int i = (n - 1) * 5 + 1; i <= (n - 1) * 5 + 5; i++) { swap(a[i], a[i + (m - n) * 5]); } for (int i = 1; i <= 25; i++) { cout << a[i] << ' '; if (i % 5 == 0) { cout << endl; } } return 0; }
-
-1
#include <iostream> using namespace std; int main() { long long a[10][10],b[10],c[10],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 i = 1; i <= 5; i++) { b[i] = a[m][i]; } for (int i = 1; i <= 5; i++) { c[i] = a[n][i]; } for (int i = 1; i <= 5; i++) { a[m][i] = c[i]; } for (int i = 1; i <= 5; i++) { a[n][i] = b[i]; } for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 5; j++) { cout << a[i][j] << " "; } cout << endl; } }
-
-1
给定一个5×5的矩阵,将矩阵的第n行和第m行交换,输出交换后的结果。
开一个二维数组存储矩阵,然后有两种思路。
- 直接交换第m行和第n行.定义一个中间变量用于交换,或使用
swap()
函数进行交换。代码如下👍
#include<bits/stdc++.h> using namespace std; int n,m,a[10][10]; int main(){ for(int i=1;i<=5;i++){//输入 for(int j=1;j<=5;j++){ cin>>a[i][j]; } }cin>>m>>n; swap(a[m],a[n]);//交换第n行和第m行 for(int i=1;i<=5;i++){//输出 for(int j=1;j<=5;j++){ cout<<a[i][j]<<' '; }cout<<endl; }return 0; }
- 不交换,在输出时判断行数,如果是第n行就输出第m行,如果是第m行就输出第n行。代码如下👍
#include<bits/stdc++.h> using namespace std; int n,m,a[10][10]; void line(int i){//用于输出一行的函数 for(int j=1;j<=5;j++){ cout<<a[i][j]<<' '; }cout<<endl; } int main(){ for(int i=1;i<=5;i++){//输入 for(int j=1;j<=5;j++){ cin>>a[i][j]; } }cin>>m>>n; for(int i=1;i<=5;i++){//输出 if(i==m){line(n);}//判断行数并输出 else if(i==n){line(m);} else{line(i);} }return 0; }
- 直接交换第m行和第n行.定义一个中间变量用于交换,或使用
-
-1
压缩流,不过为了可读性,就不做成三行了
#include <iostream> using namespace std; int main(){ int a[10][10],m,n; for (int i=1;i<=5;i++) for (int j=1;j<=5;j++) cin>>a[i][j]; cin>>m>>n; swap(a[m],a[n]); for (int i = 1; i <= 5; i++){ for (int j = 1; j <= 5; j++) cout << a[i][j] << " "; cout << endl;} return 0;}
-
-1
思路:
先说明一下:我把数组设为了num
本题的实质就是在获取了这个二维数组和m,n以后,把num[m][1到5]和num[n][1到5]交换
我们可以写一个for循环遍历num[m]和num[n],设一个temp用于存储num[m][i],将num[m][i]设为num[n][i],然后把num[n][i]设为temp,就完成了一次交换
具体代码如下(因为我是从0开始遍历的,所以m和n需要-1才能与数组里的值对应)
#include <iostream> using namespace std; int main() { int num[10][10],m,n; for(int i = 0;i < 5;i++) { for(int j = 0;j < 5;j++) cin >> num[i][j]; } cin >> m >> n; m--; n--; for(int i = 0;i < 5;i++) { int temp = num[m][i]; num[m][i] = num[n][i]; num[n][i] = temp; } for(int i = 0;i < 5;i++) { for(int j = 0;j < 5;j++) cout << num[i][j] << ' '; cout << endl; } return 0; }
-
-1
#include <iostream> using namespace std; int main() { int a[10][10]; for (int x=1;x<=5;x++) { for (int y=1;y<=5;y++) cin>>a[x][y]; } int m,n; cin>>m>>n; for (int y=1;y<=5;y++) { if (y==m) { for (int x=1;x<=5;x++) cout<<a[n][x]<<" "; } else if (y==n) { for (int x=1;x<=5;x++) cout<<a[m][x]<<" "; } else { for (int x=1;x<=5;x++) cout<<a[y][x]<<" "; } cout<<endl; } return 0; }
-
-2
#include <iostream> using namespace std; int main() { int n , m , a[5][5] , b; for(int i = 0;i < 5;i++) { for(int j = 0;j < 5;j++) { cin >> a[i][j]; } } cin >> m >> n; for(int i = 0;i < 5;i++) { b = a[n - 1][i]; a[n - 1][i] = a[m - 1][i]; a[m - 1][i] = b; } for(int i = 0;i < 5;i++) { for(int j = 0;j < 5;j++) { cout << a[i][j] << " "; } cout << endl; } return 0; }
-
-2
#include <bits/stdc++.h> using namespace std; int a[5][5]; int main(){ for (int i=0;i<5;i++){ for (int j=0;j<5;j++) cin>>a[i][j]; } int m,n; cin>>m>>n; for (int i=0;i<5;i++) swap(a[m-1][i],a[n-1][i]); for (int i=0;i<5;i++){ for (int j=0;j<5;j++) cout<<a[i][j]<<' '; cout<<endl; } return 0; }//数组
- 1
信息
- ID
- 288
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- 递交数
- 1479
- 已通过
- 634
- 上传者