C语言二维数组中每行最大值和每行和

求一个3*3二维数组中每行的最大值和每行的和。
输入格式:

在一行中输入9个小于100的整数,其间各以一个空格间隔
输出格式:

输出3行3列的二维数组,并在每行后面分别输出每行最大值和每行元素的和,每个数据输出占4列。

代码如下:

#include <stdio.h>
#include <stdlib.h>

#define M 3
#define N 3

int main()
{
int data[M][N], max, sum, i, j;

for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
scanf("%d", &data[i][j]);
}
}

printf("\n");

for (i = 0; i < M; i++) {

max = data[i][0];
sum = 0;
for (j = 0; j < N; j++) {

if (data[i][j] > max)
max = data[i][j];

sum += data[i][j];

printf("%d ", data[i][j]);
}

printf("%d %d\n", max, sum);
}

system("pause");
return 0;
}

运行结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-29
#include <stdio.h> 
#include <stdlib.h>
#define M 3 //预定义数组长度
     
int main()
{
    int a[M][M]={0},i,j,k[M]={0},m[M]={0};  
    for(j=0;j!=M;++j){
        for(i=0;i!=M;++i){
            scanf("%d",&a[i]);           
            if(m[j]<a[j][i])//找最大值
                m[j]=a[j][i];
            k[j]+=a[j][i];//计每一行的和
        }
    }
    for(j=0;j!=M;++j){
        for(i=0;i!=M;++i){
            printf("%4d", a[j][i]);
        }
        printf("%4d%4d\n",m[j],k[j]);
    }

    return 0;
}

第2个回答  2018-05-29
#include<stdio.h>
main()
{
int array[3][4];
int i,j,max;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&array[i][j]);

for(i=0;i<3;i++)
{
max = array[i][0];
for(j=0;j<4;j++)
{
if(array[i][j]>max)
max = array[i][j];
}
printf("The max num of line %d is : %d\n",i,max );
}
}
相似回答