TÓPICO

5% haha. can any1 help?

lmartines1 perguntou 5 years ago

#include<stdio.h>
#include<stdlib.h>
int compara (const void * a, const void * b) {
   return ( *(int*)a - *(int*)b );
}
int main(){
    int n,q,i,j,caso=1,busca;
    int pedras[10001];

    while(1){
        scanf("%d %d",&n,&q);
        if(n==0||q==0){
            exit(0);
        }
        for(i=0;i<n;i++){
            scanf("%d",&pedras[i]);
        }
        qsort(pedras,sizeof(pedras[0]),n,compara);
        printf("CASE# %d:\n",caso);
        caso++;
        for(i=0;i<q;i++){
            scanf("%d",&busca);
            for(j=0;j<n;j++){
                if(busca==pedras[j]){
                    printf("%d found at %d\n",busca,j+1);
                    break;
                }
            }
            if(j==n){
                printf("%d not found\n",busca);
            }
        }
    }   
    return 0;
}

Lembre de não publicar soluções. Sua publicação pode ser revisada por nossos moderadores.

  • phenrique335 respondido 4 years ago

    Olá, arrumei o seu qsort dessa maneira: qsort(pedras, n, sizeof(int), compara); e passou, pois o segundo argumento é a quantidade de elementos e o terceiro que é o tamanho, você também poderia colocar assim: qsort(pedras, n, sizeof(pedras[0]), compara);.