C语言函数:查找一维数组最大值及其下标
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
void fun(int a[],int n, int *max, int *d)
{
*max = a[0];
*d = 0;
for(int i=1; i<n; i++){
if(a[i] > *max){
*max = a[i];
*d = i;
}
}
}
void main()
{
int i, x[20], max, index, n=10;
srand((unsigned)time(NULL));
for(i=0;i<n;i++)
{
x[i]=rand()%50;
printf('%4d',x[i]); /*输出一个随机数组*/
}
printf('\n');
fun(x,n,&max,&index);
printf('Max=%5d,Index=%4d\n',max,index);
}
函数功能:
- 该函数
fun用于在一个整型数组a中查找最大值,并返回最大值和其下标。 - 参数
a:输入数组 - 参数
n:数组长度 - 参数
max:用于存储最大值 - 参数
d:用于存储最大值的下标
算法步骤:
- 初始化
max为数组第一个元素的值,d为 0,表示第一个元素的下标。 - 遍历数组,比较当前元素与
max的大小,如果当前元素更大,则更新max和d。 - 循环结束后,
max和d中就存储了最大值及其下标。
代码解释:
*max = a[0];初始化max为数组第一个元素的值。*d = 0;初始化d为 0,表示第一个元素的下标。for(int i=1; i<n; i++)循环遍历数组,从第二个元素开始。if(a[i] > *max)判断当前元素是否大于max。*max = a[i];如果当前元素大于max,则更新max为当前元素的值。*d = i;更新d为当前元素的下标。
使用示例:
- 程序首先生成一个随机数组
x,长度为n(10)。 - 调用
fun函数,将数组x、长度n、最大值变量max和 下标变量index传递给fun函数。 fun函数执行完毕后,max和index中分别存储了最大值及其下标。- 输出最大值和下标。
代码优化:
- 可以使用指针的方式,避免多次赋值,提高代码效率。
- 可以将函数拆分成更小的模块,提高代码可读性和可维护性。
- 可以添加错误处理机制,例如判断数组长度是否为 0。
总结:
本代码示例演示了如何使用C语言编写函数,查找一维整型数组中最大的值及其所在的下标,并通过形参传回结果。该代码简洁易懂,可以作为学习C语言编程的参考。
原文地址: https://www.cveoy.top/t/topic/o2Pi 著作权归作者所有。请勿转载和采集!