Ir ao conteúdo

Posts recomendados

Postado

Tenho um codigo para ser ordenado no modo bubbke sort, entretanto, acontece que a ordenação não esta funcionando, ajuda?

#include <stdio.h>
#include <stdlib.h>
#include <math.h>


int main()
{
    int x[100],aux,i,j,qdeelementos;
    i=0;
    printf("Leitura da lista:\n");
    do {
    			printf(" \n [%d] :",i);
                scanf("%d",&x[i]);
                i++;
    } while ((x[i-1]) !=-99 && i<=100);

  	if (i>100){ 
		qdeelementos=i;
	}else {		
						qdeelementos= i-1;
					
	}	
	printf("%d", qdeelementos);
		printf("\n============ lista inserida========= \n");
			
			for(i=0; i<qdeelementos;){ 
				printf("-%d",x[i]);
				i++;
			}	
	
    for(i=0; i<qdeelementos; i++){
        for(j=0; j<qdeelementos-1; j++){
            if( x[j] > x[j+1]) {
                aux = x[j];
                x[j] = x[j+1];
                x[i+1] = aux;
            }
            
        }
    }
  
		
    		for(i=0; i<=qdeelementos-1;){ 
				printf("\n -%d",x[i]);
				i++;
			}	
    getch(); 
    return 0;
}

 

Postado

Expliquei o que precisa corrigir nos comentários.

(Código foi indentando usando https://www.tutorialspoint.com/online_c_formatter.htm )

#include <stdio.h>
#include <stdlib.h>
#include <math.h>


int main()
{
    int x[100],aux,i,j,qdeelementos;
    i=0;
    printf("Leitura da lista:\n");
    do {
        printf(" \n [%d] :",i);
        scanf("%d",&x[i]);
        i++;
    } while ((x[i-1]) !=-99 && i<=100); // deveria ser i<100 pois o vetor x não tem índice 100

    if (i>100) { // deveria ser i==100 ou i>=100 pela mesma razão
        qdeelementos=i;
    } else {
        qdeelementos= i-1;
    }
    printf("%d", qdeelementos);
    printf("\n============ lista inserida========= \n");

    for(i=0; i<qdeelementos;) {
        printf("-%d",x[i]);
        i++;
    }

    for(i=0; i<qdeelementos; i++) {
        for(j=0; j<qdeelementos-1; j++) {
            if( x[j] > x[j+1]) {
                aux = x[j];
                x[j] = x[j+1];
                x[i+1] = aux; //O problema está aqui, deveria ser x[j+1] = aux;
            }

        }
    }


    for(i=0; i<=qdeelementos-1;) {
        printf("\n -%d",x[i]);
        i++;
    }
    getch();
    return 0;
}
  • Amei 1
Postado
5 minutos atrás, isrnick disse:

Expliquei o que precisa corrigir nos comentários.

(Código foi indentando usando https://www.tutorialspoint.com/online_c_formatter.htm )


#include <stdio.h>
#include <stdlib.h>
#include <math.h>


int main()
{
    int x[100],aux,i,j,qdeelementos;
    i=0;
    printf("Leitura da lista:\n");
    do {
        printf(" \n [%d] :",i);
        scanf("%d",&x[i]);
        i++;
    } while ((x[i-1]) !=-99 && i<=100); // deveria ser i<100 pois o vetor x não tem índice 100

    if (i>100) { // deveria ser i==100 ou i>=100 pela mesma razão
        qdeelementos=i;
    } else {
        qdeelementos= i-1;
    }
    printf("%d", qdeelementos);
    printf("\n============ lista inserida========= \n");

    for(i=0; i<qdeelementos;) {
        printf("-%d",x[i]);
        i++;
    }

    for(i=0; i<qdeelementos; i++) {
        for(j=0; j<qdeelementos-1; j++) {
            if( x[j] > x[j+1]) {
                aux = x[j];
                x[j] = x[j+1];
                x[i+1] = aux; //O problema está aqui, deveria ser x[j+1] = aux;
            }

        }
    }


    for(i=0; i<=qdeelementos-1;) {
        printf("\n -%d",x[i]);
        i++;
    }
    getch();
    return 0;
}

obrigadaaa, estava duas horas e nao estava vendo o erro no "x[i+1]"... muito obrigada mesmo

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!