本文主要是介绍每日编程一刷--矩阵初等行变换你会了吗?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 每日编程一刷--矩阵初等行变换你会了吗?
- 前言
- 总结
每日编程一刷–矩阵初等行变换你会了吗?
前言
欢迎来到每日编程一刷 基础
相信大家学了一天的高数 现代 大学生应该都是考试周了 你真的将现代知识掌握了没有
下面靠一靠大家
错误代码 以及思路…😔
误以为只需要交换相邻两列 实际上并不是 我们要进行交换的是 任意两列 下面我写的代码就太死板了 认为只能是 相邻两列 实则并非如此
大家一定要小心 题目 注意
#include<bits/stdc++.h>
using namespace std;
int main()
{int n;char t;int a;int b;//这个是字符int m;int k;int tmp;cin>>n>>m;//确定是n行m列int arr[n][m];for(int i=0;i<n;i++){for(int j=0;j<m;j++){cin>>arr[i][j];}}cin>>k;//这个是决定交换几次for(int y=0;y<k;y++){cin>>t>>a>>b;if(t=='c'){for(int i=0;i<n;i++){tmp=arr[i][a-1];arr[i][a-1]=arr[i][a];arr[i][a]=tmp;}}else if(t=='r'){for(int i=0;i<m;i++){tmp=arr[a-1][i];arr[a-1][i]=arr[a][i];arr[a][i]=tmp;}}}for(int i=0;i<n;i++){for(int j=0;j<m;j++){cout<<arr[i][j]<<" ";}cout<<endl;}}
//正确代码
#include <iostream>
#include <string>
using namespace std;int main()
{int n,m, i, j;cin>>n>>m;int a[12][12];for(i = 0;i < n;i++)for(j = 0;j < m;j++)cin>>a[i][j];//输入矩阵的每个元素int num;//要交换的次数cin>>num;//输入要交换的次数int n1,n2;char c;for(int y=0;y<num;y++){cin>>c>>n1>>n2;//输入要交换的三个关键参数if(c=='r')//交换行{for(i=0;i<m;i++)//搞明白行交换是怎么进行的{ int temp=a[n1-1][i];//有一个temp就可以了a[n1-1][i]=a[n2-1][i];a[n2-1][i]=temp;}}if(c=='c')//交换列{for(i=0;i<n;i++)//搞明白列交换是怎么进行的{ int temp=a[i][n1-1];//temp进行过度a[i][n1-1]=a[i][n2-1];a[i][n2-1]=temp;}}} for(i = 0;i < n;i++){for(j = 0;j < m;j++)cout<<a[i][j]<<" ";//输入矩阵的每个元素cout<<endl;}return 0;
}
总结
大家看题一定要小心 本题的思路并不难 如果不好理解 可以进行画图 我就是画的图
注意行和列的变化 注意题目给的数据 都要用上
好了 明天继续努力
这篇关于每日编程一刷--矩阵初等行变换你会了吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!