作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#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
值时保存 i
、j
的索引值,即可已捕获出现最大值的索引:
#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/
我希望从键的对应值中获取字典中第 x 大的项。 例如,对于字典: y = {'a':55, 'b':33, 'c':67, 'd':12} 我希望能够轻松提取 'b' 作为第三大键。 最初,当我只在
我是一名优秀的程序员,十分优秀!