用指针法求出数组元素中最大者和最小者。
int max,min;
void max_min_value(array,n)
int array[],n;
【11】 ;
max=min=*array;
for( 【12】 ;p<array+n;p++)
if(*p>max) max=*p;
else if(*p<min)min=*p;
main()
int i,number[20],*p;
p=number;
printf("输入20个数据:\n");
for(i=0;i<20;i++,p++) scanf("%d",p);
【13】 ;
max_min_value(p,10);
printf("max=%-10dmin=%d\n",max,rain);
参考答案:[11] int *p
[12] p=array+1
[13] p=number
解析: 函数max_min_value()中用到了指针变量p,显然应在空【11】处填int *p。函数 max_min_value()中的for循环逐一把数组中的元素与max和min的当前值进行比较。max和 rain的初值是数组的第1个元素值,第1次比较应与第2个元素比较,即array+1。空【12】处应填p=array+1。主函数main()中的指针变量p首先指向数组number的第1个元素,当第1个for循环结束时,它指向数组的最后一个元素。若这时将p作为实参传给被调用函数,形参 array[]数组的首址将是number口数组的最后元素的地址,而number[]数组的前n-1个元素不能参加比较,这将引起计算出错。因此,在调用max_min_value()函数之前,应将指针p指向number[]数组首址,即在空【10】处应填写p=umber。