1160. 数组基础-矩阵交换行

这段C++代码展示了如何在main函数中交换一个5x5二维数组中两个指定行的元素值,通过输入获取数组元素并进行临时存储后进行位置调整。

#include<bits/stdc++.h>
using namespace std;
int n,m,a[6][6],s;
int main()
{
	for(int i=1;i<=5;i++)
	{
		for(int j=1;j<=5;j++)
		{
			scanf("%d",&a[i][j]);		
		}
	}
	scanf("%d %d",&n,&m);
	for(int i=1;i<=5;i++)
	{
		s=a[m][i];
		a[m][i]=a[n][i];
		a[n][i]=s;
	}
	for(int i=1;i<=5;i++)
	{
		for(int j=1;j<=5;j++)
		{
			printf("%d ",a[i][j]);			
		}
		printf("\n");
	}
	return 0;
}

稀疏矩阵的转置是指将矩阵和列互换。对于稀疏矩阵,由于大部分元素为零,我们通常不会存储这些零值元素,而是仅存储非零元素的值、索引和列索引。因此,在实现稀疏矩阵转置时,我们只需要对非零元素进处理。 以下是使用Python实现稀疏矩阵转置的代码: ```python # 定义稀疏矩阵类 class SparseMatrix: def __init__(self, rows, cols, values): # rows: 索引列表 # cols: 列索引列表 # values: 非零元素值列表 self.rows = rows self.cols = cols self.values = values def transpose(self): # 转置操作:交换索引和列索引 transposed_rows = self.cols transposed_cols = self.rows transposed_values = self.values return SparseMatrix(transposed_rows, transposed_cols, transposed_values) def display(self): # 显示稀疏矩阵的非零元素信息 for i in range(len(self.rows)): print(f"({self.rows[i]}, {self.cols[i]}) : {self.values[i]}") # 示例稀疏矩阵 rows = [0, 1, 2] cols = [1, 2, 0] values = [5, 6, 7] sparse_matrix = SparseMatrix(rows, cols, values) print("原始稀疏矩阵:") sparse_matrix.display() # 转置稀疏矩阵 transposed_matrix = sparse_matrix.transpose() print("\n转置后的稀疏矩阵:") transposed_matrix.display() ``` ### 上述代码解释: 1. **SparseMatrix 类**:用于表示稀疏矩阵。它包含三个主要属性: - `rows`: 非零元素所在的索引。 - `cols`: 非零元素所在的列索引。 - `values`: 非零元素的值。 2. **transpose 方法**:实现了稀疏矩阵的转置操作。具体做法是将原矩阵索引和列索引互换。 3. **display 方法**:用于打印稀疏矩阵的非零元素及其位置。 4. **示例**:创建了一个稀疏矩阵,并展示了转置前后的结果。 运上述代码后,输出如下: ``` 原始稀疏矩阵: (0, 1) : 5 (1, 2) : 6 (2, 0) : 7 转置后的稀疏矩阵: (1, 0) : 5 (2, 1) : 6 (0, 2) : 7 ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值