gpt4 book ai didi

C - 查找二维数组中最大项的索引

转载 作者:行者123 更新时间:2023-11-30 21:35:26 25 4
gpt4 key购买 nike

       #include <stdio.h>

int main () {

int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};
int i, j;

for ( i = 0; i < 5; i++ ) {
for ( j = 0; j < 2; j++ ) {
printf("a[%d][%d] = %d\n", i,j, a[i][j] );
}
}
return 0;
}

到目前为止,我已经有了这段代码,它在屏幕上写入了每个元素,但我还想写入最大的数字及其索引。我只是个初学者,想请教一下大家的意见。

最佳答案

很高兴通过问题获得努力(和代码)。好工作。您需要做的就是比较每个数组值并将最大的值保存为 max。请注意,每当搜索最大值时,最好将最大值值初始化为该存储类型的最小值(“int”) ) 在这种情况下。因此,初始化为 INT_MIN 可确保任何值(如果所有值均为负数,甚至是一个较大的负值)都将大于初始值。要捕获出现最大值的索引,只需在每次保存 max 值时保存 ij 的索引值,即可已捕获出现最大值的索引:

#include <stdio.h>
#include <limits.h>

int main () {

int a[][2] = {{0,0}, {1,2}, {2,4}, {3,6},{4,8}};
int maxrow = -1, maxcol = -1;
int nrows = sizeof a/sizeof *a;
int i, j, max = INT_MIN;

for (i = 0; i < nrows; i++) {
for (j = 0; j < 2; j++ ) {
printf("a[%d][%d] = %d\n", i,j, a[i][j] );

/* find largess value */
if (a[i][j] > max) {
max = a[i][j];
maxrow = i;
maxcol = j;
}
}
}

printf ("\n maximum value at 'a[%d][%d]' : %d\n\n",
maxrow, maxcol, max);

return 0;
}

编译

gcc -Wall -Wextra -O3 -o bin/array_max array_max.c

输出

$ ./bin/array_max
a[0][0] = 0
a[0][1] = 0
a[1][0] = 1
a[1][1] = 2
a[2][0] = 2
a[2][1] = 4
a[3][0] = 3
a[3][1] = 6
a[4][0] = 4
a[4][1] = 8

maximum value at 'a[4][1]' : 8

关于C - 查找二维数组中最大项的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34129737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com