TOPIC

Wrong answer (60%) em C - casos de teste funcionam

Tiago Rodrigues asked 2 years ago

Meu código está retornando "Wrong answer (60%)" e não consigo enxergar o problema. Os casos de teste dados no problema, e alguns outros que inventei, foram conferidos no uDebug e funcionaram numa boa. Alguém consegue identificar o problema?

Question solved. Code removed.

This topic was solved and cannot recieve new replies.

  • Tiago Rodrigues replied 2 years ago

    Obrigado pelo auxílio Diogo Souza!!! Vou estudar as diferenças entre os códigos, pois ainda não entendi o que deu de errado no que eu fiz. Valeu!!!

  • Diogo Alves replied 2 years ago

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<ctype.h>
    
    int Comp_ord (const void *a , const void *b)
    {
        return (strcmp((char *) a, (char *) b));
    }
    
    int main(void)
    {
        int n;
        scanf("%d", &n);
    
        char sinal[100];
        char lista[n][22];
    
        int i, pos = 0, neg = 0;
        for(i = 0; i < n; i++)
        {
            scanf("%s %s", sinal, lista[i]);
            if(sinal[0] == '+')
            {
                pos += 1;
            }
            else
            {
                neg += 1;
            }
        }
    
        qsort((void *)lista, n, sizeof(lista[0]), Comp_ord);
    
        for(i = 0; i < n; i++)
        {
            printf("%s\n", lista[i]);
        }
        printf("Se comportaram: %d | Nao se comportaram: %d\n", pos, neg);
    
        return 0;
    }
    

    Seu código estava quase correto só fiz unas alterações e ele agora passa

  • Tiago Rodrigues replied 2 years ago

    Segui sua dica @Diogo Souza... fiz diversos testes pelo uDebug e todos deram resultados positivos, mas aqui ainda continua dando "Wrong answer (60%)". Não tenho idéia de onde está o problema.

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<ctype.h>
    
    int Comp_ord (const void *a , const void *b) {
        return (strcmp((char *) a, (char *) b));
    }
    
    int main(void){
        int n;
        scanf("%d", &n);
    
        char sinal = 'x';
        char nome[22] = "";
        char lista[100][22];
    
        int i, pos = 0, neg = 0;
        for(i = 0; i < n; i++){
            setbuf(stdin, NULL);
            scanf("%c", &sinal);
            if(sinal == '+'){
                pos+=1;
            }else{
                neg+=1;
            }
    
            scanf("%s", nome);
            strcpy(lista[i], nome);
        }
    
        qsort((void *)lista, n, sizeof(lista[0]), Comp_ord);
    
        for(i = 0; i < n; i++){
            printf("%s\n", lista[i]);
        }
        printf("Se comportaram: %d | Nao se comportaram: %d\n", pos, neg);
    
        return 0;
    }
    
  • Diogo Alves replied 2 years ago

    Cara, também isso estava acontecendo comigo, dá uma procurada qsort, ele ordena, tanto faz ser do tipo inteiro, ou char, ou struct