本题要求实现一个函数,用顺序查找法从前向后查找元素出现的位置及查询次数。
函数接口定义:
int search(int a[],int n,int x,int &count);
其中 n
是用户传入的参数,表示数组长度。 x
的值不超过int
的范围,是需查询的元素。count
表示查询的次数,初值为0,程序调用时通过形参返回其值, 函数须返回 x
在a
中出现的位置,-1表示未查到。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>
int search(int a[],int n,int x,int &count);
int main()
{
int a[10]={2,4,6,8,10,12,14,16,18,20},x,num=0,res;
scanf("%d",&x);
res=search(a,10,x,num);
if(res==-1)
printf("try %d,not found",num);
else
printf("try %d,pos %d", num,res);
return 0;
}
/* 请在这里填写答案 */
输入样例1:
8
输出样例1:
try 4,pos 3
输入样例2:
17
输出样例2:
try 10,not found
答案:
int search(int a[],int n,int x,int &count)
{
int i;
for(i=0;i<n;i++)
{
count++;
if(x==a[i])
{
return i;
}
}
return -1;
}