定义一个 N×M(N 和 M 为常量或宏)的整型二维数组,随机生成 N×M 个 0~100之间的整数,放进二维数组中。计算并输出二维数组周边元素之和;查找并输出二维数组中最大元素及其下标。
int a[5][10],用rand方法随机生成。
#include "stdio.h"
#include <time.h>
#include <stdlib.h>
#define N 5
#define M 5
void main()
{
int a[N][M];
int i,j,sum=0;
int max = 0 ,index1 = 0,index2 = 0;
srand(time(NULL));
for(i=0;i<N;i++)
{
for(j=0;j<M;j++){
a[i][j] = rand()%101;
if(i==0 || j==0 || i==N-1 || j== M-1){
sum += a[i][j];
}
}
}
//显示数据数
for(i=0;i<N;i++)
{
for(j=0;j<M;j++){
printf("%d\t",a[i][j]);
if(a[i][j]>max){
max = a[i][j];
index1 = i;
index2 = j;
}
}
printf("\n");
}
printf("sum=%d\n",sum);
printf("max = %d ,i=%d,j=%d",max,index1,index2);
}
周边元素之和计算统计第一行最后一行所有元素和中间行首尾元素
你题目的解答代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
#define M 6
void main()
{
srand((unsigned)time(NULL));
int a[N][M], i, j, x=0, y=0, s=0;
for (i = 0; i<N; i++)
{
for (j = 0; j<M; j++)
{
a[i][j] = rand() % 101;
printf("%4d", a[i][j]);
if (i==0 || j==0 || i==N-1 || j==M-1)
s += a[i][j];
if (a[i][j]>a[x][y])
x=i, y=j;
}
printf("\n");
}
printf("数组周边元素之和 %d\n", s);
printf("最大元素 %d 下标 %d %d\n", a[x][y],x,y);
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
周边就是i或j为0