使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,函数的功能是查找x在s所指数组中下标的位置,并作为函数值返回,若x不存在,则返回﹣1。 注意:部分源程序在文件PR

admin2019-03-19  17

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,函数的功能是查找x在s所指数组中下标的位置,并作为函数值返回,若x不存在,则返回﹣1。
注意:部分源程序在文件PROG1.C文件中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define N15
void NONO();
int fun(int*s,int x)
{

}
main()
{int a[N]={29,13,5,22,10,9,3,18,22,25,14,15,2,7,27},i,x,index;
printf("a数组中的数据:\n");
for(i=0;i<N;i++)
printf("%4d",a);
printf("\n");
printf("给x输入待查找的数:");
scanf("%d",&x);
index=fun(a,x);
printf("index=%d\n",index);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE*fp,*wf;
int i,j,a[10],x,index;
fp=fopen("in.dat","r");
wf=fopen("out.clat","w");
for(i=0;i<10;i++){
for(j=0;j<10;j++){
fscanf(fp,"%d",&a[j]);
}
fscanf(fp,"%d",&x);
index=fun(a,x);
fprintf(wf,"%d\n",index);
}
fclose(fp);
fclose(wf);
}

选项

答案int fun(int*s,int x) {int i; for(i=0;i<N;i++) if(x==s[i])return i; return﹣1; }

解析 要找出数组中指定数据的下标,首先定义变量i用于存放数组下标,然后使用循环语句对数组进行遍历,依次取出一个数组元素与指定的数进行比较,若相等,则返回该元素的下标,否则继续判断下一个元素,直到数组结束。若数组结束时仍没有找到与指定数相等的元素,则返回﹣1。
转载请注明原文地址:https://kaotiyun.com/show/HBRp777K
0

最新回复(0)