用C语言找出二维数组的最大元素及它所在的行与列,并算出平均值?

如题所述

#include <stdio.h>
#define ROWS 3
#define COLS 3
int main() {
// 定义二维数组
int arr[ROWS][COLS] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 初始化最大值、最大值所在的行与列、总和
int max = arr[0][0];
int max_row = 0;
int max_col = 0;
int sum = 0;
// 遍历二维数组,找出最大值及其所在行与列,计算总和
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
max_row = i;
max_col = j;
}
sum += arr[i][j];
}
}
// 计算平均值
float average = (float)sum / (ROWS * COLS);
// 输出结果
printf("最大值: %d\n", max);
printf("最大值所在行: %d\n", max_row + 1);
printf("最大值所在列: %d\n", max_col + 1);
printf("平均值: %.2f\n", average);
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2023-04-17
你可以使用嵌套循环遍历二维数组,依次比较每个元素与当前最大值的大小关系,并记录下最大值及其所在的行列索引。然后再遍历一遍数组,统计所有元素的和,除以数组大小即可得平均值。以下是示例代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main() {
int arr[ROWS][COLS] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int max = arr[0][0], row = 0, col = 0, sum = 0;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
row = i;
col = j;
}
sum += arr[i][j];
}
}
printf("Max element: %d\n", max);
printf("Row index: %d\n", row);
printf("Col index: %d\n", col);
printf("Average: %.2f\n", (float)sum/(ROWS*COLS));
return 0;
}
```

用C语言找出二维数组的最大元素及它所在的行与列,并算出平均值?_百度...
printf("最大值所在行: %d\\n", max_row + 1);printf("最大值所在列: %d\\n", max_col + 1);printf("平均值: %.2f\\n", average);return 0;}

c语言编程:找出二维数组中的最大值最小值及其所在行号列号
示例:有一个3*4的矩阵,要求编程序求出其中最大的那个元素的值,以及其所在的行号和列号。代码:include<stdio.h> int main(){ int i,j,row=0,colum=0,max;int a[3][4]={{1,2,3,4},{4,5,6,7},{-1,3,-5,10}};max=a[0][0];printf("array a:\\n");for(i=0;i<=2...

C语言求出二维数组中的最大元素值
int i, j;printMatrix (matrix, row, col);max = matrix[0][0];for (i=0; i<row; i++) {for (j=0; jmax) { \/*求最大值*\/max = matrix[i][j];}}}printf ("最大值:\\t%d\\n", max);getch (); \/*屏幕暂留*\/ return 0;}如有问题,可以点击头像联系我 ...

用C语言求二维数组所有元素的平均值并输出?
avg=sum\/6.0;printf("元素的平均值为%f",avg);}

用C语言实现,要求输出下图所示的二维数组中最大元素
i=0; i<4; i++) for(j=0; j<4; j++) scanf("%d",&a[i][j]); for(i=0; i<4; i++) for(j=0; j<4; j++) if(d

c语言输入一个二维数组,找出每行的最大值输出?
下面是实现输入一个二维数组,找出每行的最大值输出的C语言代码:include <stdio.h> define ROW 3 define COLUMN 4 int main() { int arr[ROW][COLUMN];\/\/ 输入二维数组 printf("请输入二维数组(%d行%d列):\\n", ROW, COLUMN);for (int i = 0; i < ROW; i++) { for (int j ...

C语言 求二维数组(3行3列)中最大元素值及其行列号。
\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.#include "stdio.h"int main(void){ int a[3][3]={5,1,9,2,4,6,8,7,3},i,j,maxi,maxj; for(maxi=maxj=i=0;i<3;i++) for(j=0;j<3;j++) if(a[maxi][maxj]...

在一个二维数组中找出最大值和最小值。。。c语言编写
printf("最大数:%d\\n",arr[0][0]);\/\/判断最大数的位置 for (int i=0; i<3; i++){ for (int j=0; j<4; j++){ if (arr[0][0]==arr1[i][j]){ printf("它在第%d行第%d列\\n",i,j);} } } \/\/判断最小数 for (int i=0; i<3; i++)\/\/判断最小数。{ for ...

用c语言输入一个4*6的二维数组,求数组中的最大值,最小值,平均值。_百...
int main(){ double a[4][6]={0};int i,j;double max,min,ave,sum=0;printf("请输入一个4X6的二维数组:\\n");for(i=0;i<4;i++)for(j=0;j<6;j++){ scanf("%lf",&a[i][j]);sum+=a[i][j];} max=min=a[0][0];ave=sum\/24;for(i=0;i<4;i++)for(j=0;j<...

求二维数组中最大元素及其所在的行和列
void main() \/\/主函数 { int i,j,row = 0 ,colum = 0,max; \/\/定义整型的i,j,定义行列及最大值 int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; \/\/定义一个二维数组 max = a[0][0];for(i=0;i<=2;i++) \/\/利用for进行循环 for(j=0;j<=...

相似回答
大家正在搜