我是靠谱客的博主 殷勤时光,最近开发中收集的这篇文章主要介绍[朝花夕拾C语言]c语言:矩阵交换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目介绍:输入和输出

输入描述:

第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

接下来一行输入k,表示要执行k次操作(1≤k≤5)。接下来有k行,每行包括一个字符t和两个数a和b,中间用空格格分隔,t代表需要执行的操作,当t为字符'r'时代表进行行变换,当t为字符'c'时代表进行列变换,a和b为需要互换的行或列(1≤a≤b≤n≤10,1≤a≤b≤m≤10)。

提示:当t为别的字符时不需要处理

输出描述:

输出n行m列,为矩阵交换后的结果。每个数后面有一个空格。

#include <stdio.h>
#include <string.h>

int main()
{
	int n = 0;
	int m = 0;
	int arr[10][10] = { 0 };
	scanf("%d %d", &n, &m);
	int i = 0;
	int j = 0;
	int k = 0;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			scanf("%d", &arr[i][j]);
		}
	}
	//录入相应的操作次数
	scanf("%d", &k);

	int t = 0;
	int a = 0;
	int b = 0;
	//getchar();
	
	for (i = 0; i < k; i++)
	{
		//空格是为了将其消灭掉空格
		scanf(" %c %d %d", &t, &a, &b);
		if (t == 'r')//交换行
		{
			for (j = 0; j < m; j++)
			{
				int tmp = arr[a - 1][j];
				arr[a - 1][j] = arr[b - 1][j];
				arr[b - 1][j] = tmp;
			}
		}
		if (t == 'c')//交换列
		{
			for (j = 0; j < n; j++)
			{
				int tmp = arr[j][a - 1];
				arr[j][a - 1] = arr[j][b - 1];
				arr[j][b - 1] = tmp;
			}
		}
	}
	
	//打印
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("n");
	}

	return 0;
}

最后

以上就是殷勤时光为你收集整理的[朝花夕拾C语言]c语言:矩阵交换的全部内容,希望文章能够帮你解决[朝花夕拾C语言]c语言:矩阵交换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部