Ir ao conteúdo
  • Cadastre-se

C Algoritmo de Ordenação c


Natal junio
Ir à solução Resolvido por devair1010,

Posts recomendados

preciso que o programa me mostre a quantidade de trocas feitas no vetor, e a maior sequencia de números impares (Se houver), alguém pra ajudar?

 

 

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define tam 10

int main()
{
 int numeros[tam];
 
 int i, aux, contador;
printf("Entre com dez números para o vetor: \n");
 for (i = 0; i < tam; i++) {
 scanf("%d", &numeros);
 }
printf("Ordem do vetor:\n");
for (i = 0; i < tam; i++) {
 printf("%4d", numeros);
}

 for (contador = 1; contador < tam; contador++) {
   for (i = 0; i < tam - 1; i++) {
     if (numeros < numeros[i + 1]) {
       aux = numeros;
       numeros = numeros[i + 1];
       numeros[i + 1] = aux;
     }
   }
 }
printf("\n Ordem Decrescente do vetor: \n");
for (i = 0; i < tam; i++) {
 printf("%4d", numeros);
}
printf("\n");
return 0;
}

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@Natal junio     você Quer fazer a ordenação decrescente ? ,  o segundo for de ordenar está com um erro , pois o    i   precisa começar do valor do primeiro for mais hum , pois senão ele vai apenas mover todos os números , sem  fazer nenhuma ordenação , e para contar a quantidade de trocas use esse contador que você declarou lá no início ,  e para postar seu código é melhor usar o botão   <> 

1065000446_barradeferramentas.jpg.1d42831855b4ec9357ab112f7f0b3793.jpg

 

que está desenhado lá na barra de ferramentas da janela de postar , pois senão seu código fica faltando alguns caracteres como os   { i } que sumiram do seu código ,   e  para pegar a maior sequência  use dois vetores para armazenar sequências e faça comparações até ver qual é a maior ,  e então seu código com algumas modificações poderia ser assim  :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define tam 10
#include <windows.h>
#define H GetStdHandle(STD_OUTPUT_HANDLE)
VOID textcolor_2(int l, int f){SetConsoleTextAttribute(H,l+(f<<4));}
int main(){
    int numeros[tam];
    int j,i,aux,contador=0;
    textcolor_2(14,0);
    printf("Entre com dez números para o vetor:\n");
    textcolor_2(11,0);
    for(i=0; i<tam; i++){
        scanf("%d",&numeros[i]);
    }
    textcolor_2(10,12);
    printf("  Ordem do vetor :  \n");
    textcolor_2(11,0);
    for(i=0; i<tam; i++){
        printf("%4d ",numeros[i]);
    }
    printf("\n\n");
    for(i=0; i<tam-1; i++){
        for(j=i+1; j<tam; j++){
            if( numeros[j] > numeros[i]){/* Aqui Que Determina Crescente Ou Decrescente , Invertendo O Sinal < Ou > */
                aux        = numeros[j] ;
                numeros[j] = numeros[i] ;
                numeros[i] = aux        ;
                contador++              ;
            }
        }
    }
    textcolor_2(14,0);
    printf("\n Ordem Decrescente do vetor: \n");
    textcolor_2(10,12);
    for(i=0; i<tam; i++){
        printf("%4d ",numeros[i]);
    }
    printf("\n\n");
    textcolor_2(12,14);
    printf("  Numero De Trocas -> %d  s\n",contador);
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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...