编写一函数求一维数组的最大元素及下标位置(要求使用指针)

编写一函数求一维数组的最大元素及下标位置(要求使用指针)

/*————————————————————————————
编写一函数求一维数组的最大元素及其下标位置(用指针)

[已知]:数组首地址p,元素个数n; (作函数参数)
[结果]:下标k; (作返回值)

[分析]:int max(int *p,int n)
设最大值放在max中,则初始状态为:max=*p,k=0
如果*(p+i)>max,则max=*(p+i)且k=i

[编写者]:2012.1.3
—————————————————————————————*/

#include<stdio.h>

int max(int *p,int n)
{
int k=0,max=*p,i;
for(i=0;i<n;i++)
if(*(p+i)>max) { max=*(p+i); k=i;}
return k;

}
int main()
{
int k,i,a[4],*p=a;//数组共存放5个数
printf("please enter five numbers:");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
k=max(a,5);
printf("max is a[%d]= %d",k,*(p+k));

return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答