有一个二维数组数组 每一行都有一个最大值 编程求出这些最大值以及它们的和

如题所述

设计思想:

    定义一个二维数组,并使用二重循环为其赋值

    遍历这个二维数组

    定义一个tmp变量,存储每行的最大值,并对这个最大值进行累加

    输出这个最大值

    输出最大值的和

代码:

#include<stdio.h>
#include<string.h>
#define M 3
#define N 3
void main() {
        int a[M][N];
        int sum=0;
        int tmp=0;
        for (int i=0;i<M;i++ )
                for (int j=0;j<N;j++ )
                        scanf("%d",&a[i][j]);
        for (int i=0;i<M;i++ ) {
                tmp=0;
                for ( int j=0;j<N;j++ )
                        if ( a[i][tmp]<a[i][j] )
                                tmp=j;
                printf("The max num of Line %d is %d\n",i+1, a[i][tmp]);
                sum+= a[i][tmp];
        }
        printf("The sum is %d\n",sum);
}

运行结果

1 2 3
4 5 6
7 8 9
The max num of Line 1 is 3
The max num of Line 2 is 6
The max num of Line 3 is 9
The sum is 18

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-10
#include "stdio.h"
#define N 100
void main()
{
 int a[N][N];
 int row,col;
 int i,j;
 int sum=0;
 int max;
 printf("Please input row anf col:\n");
 scanf("%d%d",&row,&col);
 printf("Plaese input data:\n");
 for(i=0;i<row;i++)
 {
  for(j=0;j<col;j++)  {  scanf("%d",&a[i][j]);  }
 }
 for(i=0;i<row;i++)
 {
  max=a[i][0];
  for(j=0;j<col;j++)  {  if(max<a[i][j])  max=a[i][j];  }
  sum+=max;
  printf("No.%d:%d\n",i+1,max);
 }
 printf("sum=%d\n",sum);
}

本回答被网友采纳
相似回答