使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数int fun(int*s,int t,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中

admin2018-10-21  28

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数int fun(int*s,int t,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。
例如,输入如下整数:
876 675 896 101 301 401 980 431 451 777
则输出结果为6,980。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
int fun(int*s,int t,int*k)
{

}
void main()
{
FILE*wf;
int a[10]={876,675,896,101,301,401,980,431,451,777),k;
system("CLS");
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);
/*********found*********/
wf=fopen("out.dat","w");
fprintf(wf,"%d,%d",k,a[k]);
fclose(wf);
/*********found*********/
}

选项

答案int fun(int*s,int t,int*k) { int i; *k=0;/*k所指的数是数组的下标值*/ for(i=0;i<t;i++) if(s[*k]<s[i])*k=i;/* 找到数组的最大元素,把该元素的下标赋给k所指的数*/ return s[*k];/*返回数组的最大元素*/

解析 本题中直接使用指针变量k,使用时要注意对k进行指针运算。程序一开始让k指向数组中的第一个元素,即*k=0。
转载请注明原文地址:https://jikaoti.com/ti/voa0FFFM
0

最新回复(0)