问答题
1. 请编写一个函数int proc(int*s,int t,int*k),用来求出数组的最小元素在数组中的下标并将其存放在k所指的存储单元中。
例如,输入如下整数:
273 934 453 624 89 342 111 831 527 246
则输出结果为4,89。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
衔nclude<conio.h>
#include<stdio.h>
void proc(int*s,int t,int*k)
{
}
void main()
{
int are[10]={273,934,453,624,89,342,111,831,527,246},k;
system("CLS");
proc(arr,10,&k);
printf("%d,%d\n",k,arr[k]);
}
【正确答案】int proc(int*s,int t,int*k)
{
int i,j;
j=0; j//这是为了求得最小数的下标
for(i=0; i<t; i++)
if(s[j]>s[i]) //从if中,可知当后面的数比前面的数小时,把小的元素的下标放到j中
j=i;
*k=j; //最后把最小元素的下标赋给*k,使其带回到主函数中
}
【答案解析】 要求出数组中最小的数,需要比较数组中的每一个元素。将最小的元素的下标存放在变量k中,通过形参返回给主函数。