zcmu-1099 查找元素2

【题述】

Description

给定一个整数集合s,集合中有n个元素,我有m次询问,对于每次询问给定一个整数x,若 x存在于集合s中输出x found at y,y为集合s按从小到大排序后第一次出现x的下标,否则输出x not found.

Input

多组测试数据,每组第一行为两个正整数n,m.(1<=n,m<=1000)代表集合中元素的个数和查询次数,接下来n行每行有一个正整数代表集合里的元素.(每个整数的大小小于等于100000),接下来 m行每行有一个正整数代表查询的元素.

Output

详见sample output

Sample Input

4 1 2 3 5 1 5 5 2 1 3 3 3 1 2 3

Sample Output

CASE# 1:

5 found at 4

CASE# 2:

2 not found

3 found at 3

 【9.6更新代码】

#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
int a[1005];
int main(){
    int n,m,k,tmp = 1;
    while(scanf("%d%d",&n,&m) != EOF)
    {
        for(int i = 1;i <= n;i++)
        {
            scanf("%d",&a[i]);
            
        }
        sort(a + 1,a + n + 1);
        printf("CASE# %d:\n",tmp ++);
        for(int j = 1 ; j <= m;j++)
        {
            scanf("%d",&k);
            int flag = 0 ;
            
            for(int i = 1;i <= n;i++)
            {
                if(a[i] == k)
                {
                    printf("%d found at %d\n",k,i);
                    flag = 1;
                    break;
                }
            }
            if(!flag)
                printf("%d not found\n",k);
                
        }
    }
    
    
    return 0;
}

 

【我的代码(通过代码)】 

#include 
#include 
void sort(int arr[], int len) {  //从小到大排序
    int i, j;
    for (i = 0; i < len - 1; i++)          //外层循环控制趟数,总趟数为len-1
        for (j = 0; j < len - 1 - i; j++)  //内层循环为当前i趟数 所需要比较的次数
            if (arr[j] > arr[j + 1]){
                int tmp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=tmp;
            }
}
int main(){
    int n,m,i,j,t,count;
    t=1;
    while(scanf("%d%d",&n,&m)!=EOF){
        int a[n],b[m];
        
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        for(i=0;i

 

你可能感兴趣的:(zcmu-1099 查找元素2)