P094 求出数组的最大元素在数组中的下标 ★★

03-程序设计题 软件121, 唐鼎威 1237浏览

所属年份:2010.9;2012.3
请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。
例如,输入如下整数:
876 675 896 101 301 401 980 431 451 777
则输出结果为6,980。

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
int fun(int *s,int t,int *k)
{
  
}
void main()
{
  FILE *wf;
  int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;
  system("CLS");
  fun(a, 10, &k);
  printf("%d, %d\n ", k, a[k]);
/******************************/
  wf=fopen("out.dat","w");
  fprintf (wf,"%d, %d", k, a[k]);
  fclose(wf);
/*****************************/
}

【考点分析】
本题考查:求数组中的最大值的求法,使用循环判断语句实现。
【解题思路】
本题中直接使用指针变量k,使用时要注意对k进行指针运算。程序一开始让k指向数组中的第一个元素,即*k=0。

【参考答案】

int fun(int *s,int t,int *k)
{
   int i;
   *k=0;                  /*k所指的数是数组的下标值*/
   for(i=0;i<t;i++)
     if(s[*k]<s[i]) *k=i; /*找到数组的最大元素,把该元素的下标赋给k所指的数*/
   return s[*k];          /*返回数组的最大元素*/
}