【说明】 请编写一个函数int SeqSearch(int list[],int start,int n,int key),该函数从start开始,在大小为n的数组list中查找key值,返回最先找到的key值的位置,如果没有找到则返回-1。请修改程序中画线部分的错误并将不同情况下的输出结果补充完整。 【程序】 文件search.cpp的内容如下: #include <iostream. h > int SeqSearch( int list[ ] ,int start,int n,int key) { for(int i=start;i<=n;i++) //(1) { if( list[i] = key)//(2) {return i; } } return -1; } void main( ) { int A[10] int key,count=0,pos; cout <<" Enter a list of 10 integers:"; for(pos=0;pos<10;pos++) { cin >>A; //(3) } cout <<" Enter a key; "; cin >> key; pos=0;while(( pos = SeqSearch ( A, pos, 10, key)) !=-1 ) { count ++; pos ++; } cout<<key<<"occurs" <<count<< (count!=1" times":" time") <<" in the list," << endl; } 第一种情况:输入2 3 12 6 8 45 8 33 7输入key:8 输出: (4) 第二种情况:输入2 3 126 8 45 8 33 7输入k6y:9 输出: (5)
参考答案:
解析:(1)for(int i=start;i<n;i++) (2)if(list[i]==key) (3)cin>>A[pos] (4)8 occurs 2 times in the list (5)9 occurs 0 time in the list 数组下标从0开始,所以n次循环要在i=n-1时结束,而不是在i=n时结束。判断是否相等使用“==”,一个等号是赋值。将输入数字逐个赋给A的pos处的元素。8出现2次,注意结果中的 times。9出现0次,注意结果中的time。