从键盘上输入M*N的二维数组,求每一行最大值,并输出。如:int a[3][4]={1,2,3,4,5,6,8,9,12,10,11,9}的每行最大值。
输入
只有一组测试数据。输入有多行
第一行是m和n, 表示二维数组的行列维数。(m,n不大于100)
第二行 到 第m 行 表示输入的二维数组
输出
输出有m行,每行只有一个数,表示该行的最大值。如样例所示
难度
中等
输入示例
3 4
1 2 3 4
5 6 8 9
12 10 11 9
输出示例
1:4
2:9
3:12
#include <stdio.h>
int main()
{
int a[100][100],i,j;
int m,n,max;
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<m;i++)
{
max = 0;
for(j=0;j<n;j++)
{
if(j==0 || max < a[i][j])
max = a[i][j];
}
printf("%d:%d\n",i+1,max);
}
}
#include <stdio.h>
#include <limits.h>
int main()
{
int m, n, i, j, t, max[100] = {0};
scanf("%d%d", &m, &n);
for (i = 0; i < m; i++)
{
max[i] = INT_MIN;
for (j = 0; j < n; j++)
{
scanf("%d", &t);
if (t > max[i])
max[i] = t;
}
}
for (i = 0; i < m; i++)
{
printf("%d:%d\n", i + 1, max[i]);
}
return 0;
}
供参考:
#include <stdio.h>
#define M 3
#define N 4
int main()
{
int a[M][N] = { 1,2,3,4,5,6,8,9,12,10,11,9 }, m = M, n = N, b[M] = { 0 }, i, j;
//scanf("%d%d", &m, &n);
//for (i = 0; i < m; i++)
// for (j = 0; j < n; j++)
// scanf("%d", &a[i][j]);
for (i = 0; i < m; i++)
{
for (j = 0, b[i] = a[i][j]; j < n; j++)
{
if (b[i] < a[i][j])
b[i] = a[i][j];
}
}
for (i = 0; i < m; i++)
printf("%d:%d\n", i + 1, b[i]);
return 0;
}