数组
第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");
}