要求
求一个N*N二维数组中每一列的最大值,用一个一维数组保存最大值
代码
#include <stdio.h>
int main(){
//定义一个3行3列的二维数组和每一列最大值的一维数组
const int N=3;
int a[N][N],max[N];
//输入数组
printf("请输入一个%d行%d列的二维数组:\n",N,N);
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
scanf("%d",&a[i][j]);
}
//找出数组每一列的最大值
for(int j=0;j<N;j++){ //循环每一列
int coulumn_max=a[0][j]; //定义每一列的最大值,并先对其初始化为每一列的第一个值
for(int i=1;i<N;i++){ //循环每一行
if(a[i][j]>coulumn_max){ //判断该列该行的数是否大于当前这一列的最大值
coulumn_max=a[i][j]; //若大于,则使这一列的最大值等于该列该行的数
}
}
max[j]=coulumn_max; //每一次内层循环结束后的结果输入max[j]这一数组
}
//输出一维数组max[j]
printf("每一列的最大值是:\n")
for(int j=0;j<N;j++){
printf("%d\t",max[j]);
}
return 0;
}