题目大意:给出一组数据,按升序排列。给出一个数字,查询它在数组中的位置,并输出,不存在,则输出“no found”
解题过程:WA一次,没有考虑到给出的数字大于所有数据的情况
正确代码:
# include <cstdio>
# include <cstdlib>
# include <ctime>
# include <cmath>
# include <iostream>
# include <fstream>
# include <cstring>
# include <string>
//*
#define fin cin
#define fout cout
//*/
using namespace std;
/*
ifstream fin("in.txt");
ofstream fout("out.txt");
//*/
int cmp(const void*a,const void*b){
return *(int*)a-*(int*)b;
}
int main()
{
int n,q;
int qu;
fin>>n>>q;
int time=0;
while(n!=0||q!=0){
time++;
int * marble=new int[n];
for(int i=0;i<n;i++){
fin>>marble[i];
}
qsort(marble,n,sizeof(marble[0]),cmp);
fout<<"CASE# "<<time<<":"<<endl;
while(q){
q--;
fin>>qu;
for(int i=0;i<n;i++){
if(marble[i]>qu){
fout<<qu<<" not found"<<endl;
break;
}
else if(marble[i]==qu){
fout<<qu<<" found at "<<i+1<<endl;
break;
}
}
if(marble[n-1]<qu) fout<<qu<<" not found"<<endl;
}
fin>>n>>q;
}
return 0;
}