程序内容:
编写一个函数,返回储存在double类型数组中最大值的下标,并在一个简单的程序中测试该函数。
程序为C Primer Plus第十章第四题的答案示例
附:程序代码为本人亲自编写,并非书内标准答案,仅供参考。
如果程序有任何bug或者有好的建议,可以在评论区留言,或者私信。
程序源代码:
#include
当然,这里存在另一种算法,可以选择不用变量来存储数组下标,直接通过p指针相减,达到求出数组下标的目的。
程序源代码(利用指针相减):
#include<stdio.h>
int max(const double arr[],int n); //寻找最大值的下标
int main(void)
{
double arr[10]={5.5, 2.2, 0.5, 66.1, 2.5}; //测试数组
int maxindex;
maxindex=max(arr,10); //函数调用
printf("%dn",maxindex);
return 0;
}
int max(const double arr[],int n)
{
int count;
const double*p=arr;
for(count=1;count<n;count++)
{
if(*p<arr[count])
p=&arr[count];
}
return p-arr;
}