5×5的二维数组,交换两行

  • Post author:
  • Post category:其他


数组

第8题

【描述】

编写一个函数:int swap(int array [5][5], int n, int m ),输入参数是5×5的二维数组,和n、m两个行下标。功能:判断n、m是否在数组范围内,如果不在,则返回0;如果在范围内,则将n行元素与m行元素交换,并返回1。

在main函数中, 创建一个5×5的矩阵,输入矩阵数据,并输入n、m的值。调用前面的函数。如果返回值为0,输出error。如果返回值为1,输出交换n、m行后的新矩阵。

【输入】

5×5矩阵的数据,以及n和m的值。

【输出】

如果不可交换,则输出error;如果可交换,则输出新矩阵。

【输入示例】

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

0 4

【输出示例】

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

【提示】

输出error格式如下:

printf(“error\n”);

输出矩阵元素格式如下:

printf(“%4d”, num);

输出矩阵一行后要换行:

printf(“\n”);

#include<stdio.h>
	int swap(int array [5][5], int n, int m ){
		int t[5][5],i;
		if(n<=4&&m<=4){
			for(i=0;i<=4;i++){
				t[n][i]=array[n][i];
				array[n][i]=array[m][i];
				array[m][i]=t[n][i];
			}
			return 1; }
		else
			return 0;
			
	}
	int main(){
		int i,j,n,m,t=0;
		int a[5][5];
		for(i=0;i<5;i++)
			for(j=0;j<5;j++){
				scanf("%d",&a[i][j]);
			}	
		scanf("%d%d",&n,&m);
		if (swap(a,n,m)){
			for(i=0;i<5;i++){
				for(j=0;j<5;j++){
					printf("%4d",a[i][j]);				
			}
			
			printf("\n");
		}
		}//交换n,m行 
		else
			printf("error\n");
			
	}



版权声明:本文为u011545923原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。