活动设计题  
    请编写一个函数fun,它的功能是找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。
    在主函数中,a是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
    注意:部分源程序存放在文件PROG1.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
    给定源程序如下:
        #include <stdlib.h>
#include <stdio.h>
void fun(int  a[],  int  n , int  *max, int  *d )
{ } main()
{ int i,  x[20],  max , index, n = 10;void NONO ();
  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 );
  NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
  FILE *fp, *wf ;
  int i,  x[20],  max , index, n = 10, j ;   fp = fopen('..\\in.dat','r') ;
  wf = fopen('..\\out.dat','w') ;
  for(i = 0 ; i < 10 ; i++) {
    for(j = 0 ; j < n ; j++) fscanf(fp, '%d,', &x[j]) ;
    fun( x, n , &max, &index);
    fprintf(wf, 'Max=%d,Index=%d\n', max, index) ;
  }
  fclose(fp) ;
  fclose(wf) ;
}
 
【正确答案】void fun(int a[],int n,int*max,int *d) { int i; *max=a[0]; *d=0; for(i=0;i<n;i++) if(*max<a[i]) {*max=a[i];*d=i;} } 答案考生文件夹
【答案解析】要查找最大值及其下标,需要定义两个变量,该程序直接使用形参max和d,由于它们都是指针变量,所以在引用它们所指向的变量时,要对其进行指针运算。循环语句用来遍历数组元素,条件语句用来判断该数组元素是否最大。