问答题
1. 请编写—个函数int proc(int *s,int t,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如,输入如下整数:
876 675 896 101 999 401 980 431 451 777
则输出结果为4,999。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
int proc(int*s,int t,int*k)
{
}
void main()
{
int arr[10]={876,675,896,101,999,401,980,431,451,777},k;
system("CLS");
proc(arr,10,&k);
printf("%d,%d\n",k,arr[k]);
}
【正确答案】int proc(int*s,int t,int*k)
{
int i;
*k=0;
for(i=0; i<t; i++)//数组的最大元素在数组中的下标
if(s[*k]<s[i])*k=i; //将其放到k所指向的地址中
return s[*k]; //把最大值返回到主函数中
}
【答案解析】 要得到数组中的最大元素的下标,需要比较数组中的每一个元素。将最大的元素返回给主函数,最大元素的下标通过形参返回给主函数。