Informática, perguntado por Debora741, 1 ano atrás

Escreva um programa que leia um vetor de 100 posições e mostre-o ordenado em ordem crescente.

Soluções para a tarefa

Respondido por Index
0
algoritmo
    declare    vetor[100]
            contador1
            contador2
            aux
            numerico
            
    //Atribui valores iniciais necessários
    contador1 <- 1
    contador2 <- 1
    
    //Preenche vetor
    repita
        se (contador1 > 100) entao
            interrompa
        fimse
        escreva("Informe um valor para o vetor: ")
        leia(vetor[contador1])
        contador1 <- contador1 + 1
    fimrepita
    
    //Ordena vetor de forma crescente
    contador1 <- 1
    repita
        se (contador1 > 100) entao
            interrompa
        fimse
        contador2 <- 1
        repita
            se(contador2 > 100) entao
                interrompa
            fimse
            se(vetor[contador1] < vetor[contador2]) entao
                aux <- vetor[contador1]
                vetor[contador1] <- vetor[contador2]
                vetor[contador1] <- aux
            fimse
            contador2 <- contador2 + 1
        fimrepita
        contador1 <- contador1 + 1
    fimrepita
    
    //Mostra vetor
    contador1 <- 1
    repita
        se (contador1 > 100) entao
            interrompa
        fimse
        escreva(vetor[contador1])
        contador1 <- contador1 + 1
    fimrepita
fimalgoritmo
Respondido por johanrocha
1

Resposta:

Joga numa IDE que a formatação te ajuda na compreensão ;)

Explicação:

#include <stdio.h>

#include <stdlib.h>

int main()

{

   int a, b, i, ii, subst, vec[100];

   //Entrada dos valores

   for(i=0; i<100; i++)

   {

       printf("Insira o %dº valor:\n", i+1);

       scanf("%d", &vec[i]);

   }

   //Esquema de comparações

   for(i=0; i<99; i++)   //passa por 99 posições do vetor (0-98).    //posições do vetor analisadas para comparação de forma crescente (desconsidera a comparação do último elemento, já que ele vai ter se comparado com todos e não pode ser comparado consigo mesmo).

   {

       a=vec[i];

       for(ii=99; ii>=i+1; ii--)  // 99(último elemento)até uma posição a mais do que a do vetor principal. //subcomparação da posição do vetor em questão com todos os outros elementos de forma decrescente.

       {

           b=vec[ii];

           if(a>b)

           {

               subst=a;

               a=b;

               b=subst;

               vec[i]=a;

               vec[ii]=b;

           }

       }

   }

   //Impressão dos dados

   printf("Os dados ordenados:\n");

   for(i=0; i<100; i++)

   {

       printf("\n%d", vec[i]);

   }

   return 0;

}

Perguntas interessantes