Ir ao conteúdo

C Algoritmo de Ordenação c


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

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
  • Solução
Postado

@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

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!