编写程序,先从键盘输入两个正整数n和m(n、m的值不超过10),然后再输入n行m列的二维数组,交换二维数组中最大值和最小值的所在列,输出交换后的二维数组。
【注意】运行效果应如下(前n+1行为输入,后n行为输出)
【运行效果1】:
2 3
1 2 3
2 7 4
2,1,3,
7,2,4,
【运行效果2】:
3 4
1 2 3 4
8 2 0 1
5 6 2 3
3,2,1,4,
0,2,8,1,
2,6,5,3,
以下是我写得代码orz(感觉可以再改
#include <stdio.h>
int main() {
int i,j,x,y,a,b,max,min,temp,n,m;
scanf("%d%d",&n,&m);
int f[n][m];
for(i = 0;i < n;i++)
{
for(j = 0;j < m;j++)
{
scanf("%d",&f[i][j]);
}
}
max = f[0][0];
for(i = 0;i < n;i++)
{
for(j = 0;j < m;j++)
{
if(max > f[i][j])
{
max = max;
}
else
{
max = f[i][j];
x = j;
}
}
}
min = f[0][0];
for(a = 0;a < n;a++)
{
for(b = 0;b < m;b++)
{
if(min < f[a][b])
{
min = min;
}
else
{
min = f[a][b];
y = b;
}
}
}
for(i = 0;i < n;i++)
{
temp = f[i][x];
f[i][x] = f[i][y];
f[i][y] = temp;
}
for(i = 0;i < n;i++)
{
for(j = 0;j < m;j++)
{
printf("%d,",f[i][j]);
}
printf("\n");
}
return 0;
}