请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。 主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 注意:部分

admin2014-06-20  5

问题 请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
注意:部分源程序存在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#include<stdio.h>
voidfun(inta[ ],intn,int*max,int*d)
{
}
main(    )
{inti,x[20],max,index,n=10;voidNON0(    );
for(i=0;i<n;i++){x=rand(    )%50;printf(’’%4d’’,x);}
printf(’’\n’’);
fun(x,n,&max,&index);
printf(’’Max=%5d,Index=%4d\n’’,max,index);
NONOO;
}
voidNONO(    )
{/*
本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/FILE*fp,*wf;
inti,x[201,max,index,n=10,j;
fp=fopen(’’in.dat’’,’’r’’);
wf=fopen(’’out.dat’’,’’w’’);
for(i=0;i<10;i++){
for(j=0;j<n;j++)fscanf(fp,’’%d,’’,&x[j]);
fun(x,n,&max,&index);
fprintf(wf,’’Max=%d,Index=%d\n’’,max,index);
}
fclose(fp);
fclose(wf);
}

选项

答案inti; *max=a[0];*d=0;/*把数组的第1个元素值赋值给最大值变量*max*/ for(i=l;i<n;i++) if(*max<a[i]){/*判断*max是否小于当前值*/ *max=a[i];/*重新把最大值赋值给*max*/ *d=i:/*记住下标*/ }

解析 该程序功能是求一维整型数组元素中最大的值和它所在的下标。其中,求最大元素的方法:用最大值变量max标记第一个待找数据,逐个把所有待找数据和max进行比较,并用max标记其当前最大值及其所在位置,从而找出最大值。进入fun函数,根据前面的分析:(1)*max指针变量首先指向数组a的第一个数据,同时将标志位*d初始值赋为0。(2)然后利用for循环对每一个当前数组数据与max标记的数据进行比较。(3)循环[f]将求得的最大数据a赋值给*max,并将该数据项数组标志位赋给标志位*d。
转载请注明原文地址:https://jikaoti.com/ti/kGkiFFFM
0

相关试题推荐
最新回复(0)