这是程序:
#include <stdio.h>
int fun(int a,int b,int n){
return (a>=0 && a<n && b>=0 && b<n) ? 1 : 0;
}
int main(void){
int a[5][5],i,j,x,y,t;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
scanf("%d %d",&x,&y);
if(fun(x,y,5))
for(i=0;i<5;i++)
(void)(t=a[x][i]),(void)(a[x][i]=a[y][i]),a[y][i]=t;
else
printf("error!\n");
for(i=0;i<5;i++){
for(j=0;j<5;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
然后每次输出,矩阵每一行末尾的数字后面都会有一个空格,而题目要求只能在每一行数字之间有空格,首末尾都不能有空格。已经改了好几遍了都不行,求大佬指点!!!
(附题目:编写一个函数,输入参数是5*5的二维int型数组,和n,m两个行下标。功能:判断n,m是否在数组范围内,如果不在,则返回0;如果在范围内,则将n行和m行交换,并返回1。在main函数中, 声明一个5*5的int型矩阵,输入矩阵数据,并输入n,m的值。调用前面的函数。如果返回值为0,输出error。如果返回值为1,输出交换后的新矩阵。)