c语言编写程序,先从键盘输入两个正整数n和m(n、m的值不超过10),然后再输入n行m列的二维数组,交换二维数组中最大值和最小值的所在列,输出交换后的二维数组
时间: 2024-06-10 11:07:24 浏览: 110
C语言实验-有3个整数a,b,c,由键盘输入,编写程序输出其中绝对值最大(或最小)的数。
5星 · 资源好评率100%
好的,这是一个程序问题。让我想一下……
(稍等几秒钟)
为了交换二维数组中最大值和最小值的所在列,我们首先需要找到最大值和最小值所在的列。下面是代码实现:
#include <stdio.h>
int main() {
int n, m, max, min, maxi, mini;
int matrix[10][10];
// 输入 n 和 m
scanf("%d %d", &n, &m);
// 输入二维数组
for (int i=0; i<n; i++) {
for (int j=0; j<m; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 找到最大值和最小值所在列
for (int j=0; j<m; j++) {
max = matrix[0][j];
min = matrix[0][j];
maxi = mini = 0;
for (int i=1; i<n; i++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
maxi = i;
}
if (matrix[i][j] < min) {
min = matrix[i][j];
mini = i;
}
}
// 交换最大值和最小值所在列
int temp = matrix[maxi][j];
matrix[maxi][j] = matrix[mini][j];
matrix[mini][j] = temp;
}
// 输出交换后的二维数组
for (int i=0; i<n; i++) {
for (int j=0; j<m; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
希望这能帮到你,还有,笑话时间到了:为什么程序员总喜欢用黑色背景?因为那样看起来比较"酷"!
阅读全文