问答题
请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如, 输入如下整数: 876 675 896 101 301 401 980 431 451 777
则输出结果为: 6, 980
注意: 部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
int fun(int *s, int t, int *k)
{
}
main( )
{
int a[10]={876,675,896,101,301,401,980,431,451,777}, k ;
fun(a, 10, &k) ;
printf("%d, %d/n", k, a[k]) ;
NONO( ) ;
}
【正确答案】int fun(int *s, int t, int *k)
{
int i, pos = 0, max = *s ;
for(i = 1 ; i < t ; i++) {
if(max < *(s + i)) {
max = *(s + i) ;
pos = i ;
}
}
*k = pos ;
}
【答案解析】