求助这个代码还能再改善一下吗TT
  • 板块学术版
  • 楼主_QwQ_529
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/13 23:50
  • 上次更新2023/11/14 12:45:43
查看原帖
求助这个代码还能再改善一下吗TT
1197528
_QwQ_529楼主2023/11/13 23:50

编写程序,先从键盘输入两个正整数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;
}
2023/11/13 23:50
加载中...