填空题 下述程序在数组中同时查找最大元素下标和最小元素下标,分别存放在main()函数的变量max和min中,请填空。
试题程序

#include <stdio.h>
void find(int*a, int n, int*max, int*min)
{ int i;
*max=*min=0;
for(i=1; i<n; i++)
if(a[i]>a[*max])
______;
else
if(a[i]<a[*min])
______;
}
main()
{ int a[]={5,8,7,6,2,7,3};
int max, min;
find(_______);
printf("/n% d, % d", max, min);
}
  • 1、
【正确答案】 1、*max=i *min=i a, 7, &max, &min或&a[0], 7, &max, &min    
【答案解析】[解析] 初始时,函数find()中的指针变量max和min指向的单元都存放下标0,表示a[0]是临时的最大值和最小值。需要更新时,*max=i,*min=i,因为*max和*min才代表下标变量。函数调用时,传递数组实际地址、数组长度及存放最大、最小下标值的地址。说明:此典型的简单算法经常出现在考试题目中,为此,应该熟悉一些离散数据处理的算法,如排序、查找等。这些程序一般不能脱离循环结构,经常在函数之间传递数组或指针。