C语言求数组最小值,并返回下标

编程入门 行业动态 更新时间:2024-10-19 04:25:48

C语言求数组最小值,并返回<a href=https://www.elefans.com/category/jswz/34/1770054.html style=下标"/>

C语言求数组最小值,并返回下标

#include<stdio.h>
#include<string.h>
void main()
{int a[] = {12,5,21,33,55,77,11,2};int zf = sizeof(a) / sizeof(a[0]);for (int i = 0; i < zf; i++){if (a[i] < a[0]){a[0] = a[i];}}printf("最小为%d,下标是0",a[0]);
}

如果是求最小值的情况,不保证元素丢失情况,可以采用这种方法。将所有数与第一个数比较,如果比第一个数小,就把这个数付给a[0],那么最小值的下标一定是0。可是这样的话a[0]一开始的值就被覆盖了。

最好还是定义一个变量min,初始化时将a[0]赋给min。然后进行比较。这样达到查找的效果,元素也不会丢失。

下面给一个例子:

#include<stdio.h>
#include<string.h>
void main()
{int a[2][4] = { {12,5,21,33},{55,77,11,2} };int zf = sizeof(a) / sizeof(a[0][0]);int row_len = sizeof(a)/sizeof(a[0]);int col_len = zf / row_len;int min = a[0][0];int i=0, j=0,row,col;for ( i = 0; i < row_len; ++i){for (j = 0; j < col_len; ++j){if (a[i][j] < min){min = a[i][j];row = i;col = j;}}}printf("最小为%d,下标是%d,%d\n", min, row, col);
}

这里要注意的是,输出下标时,当退出for循环时,如果输出i,j的话,会输出2,4。这是因为for循环是先判断条件满足之后,并将循环体执行完后,再执行自增(i++或者++i),所以我这里采用将值赋给变量row,col保存。

更多推荐

C语言求数组最小值,并返回下标

本文发布于:2023-12-03 11:23:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1654812.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:下标   数组   最小值   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!