Faça um código em para gerar 10 números aleatórios (entre 1 e 50 ) e armazenar em um vetor. Apresente os números gerados na tela e depois organize o vetor com o método de ordenação BubbleSort. Ao final, apresente o vetor ordenado.

Passo 1

Beleza, vamos entender o que a questão está pedindo. Precisamos escrever um código em C que faz o seguinte:
  1. Gera 10 números aleatórios entre 1 e 50.
  2. Armazena esses números em um vetor (ou array).
  3. Mostra esses números na tela.
  4. Organiza o vetor usando o método de ordenação BubbleSort.
  5. Mostra o vetor já ordenado.
Para isso, vamos precisar saber como gerar números aleatórios em C, como trabalhar com vetores e como implementar o algoritmo BubbleSort.

Passo 2

Primeiro, vamos incluir as bibliotecas necessárias. Em C, para gerar números aleatórios, usamos a biblioteca stdlib.h, e para inicializar a semente do gerador de números aleatórios com base no tempo atual, usamos time.h.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

Passo 3

Agora, vamos declarar o nosso vetor para armazenar os 10 números. Também vamos definir o tamanho do vetor para facilitar futuras modificações.
#define TAMANHO 10

int main() {
    int vetor[TAMANHO];
    // Restante do código
}

Passo 4

Antes de gerar os números aleatórios, é importante inicializar a semente do gerador com srand(time(NULL)). Isso garante que os números sejam diferentes a cada execução do programa.
srand(time(NULL));

Passo 5

Vamos agora gerar os 10 números aleatórios entre 1 e 50 e armazená-los no vetor. Para isso, usamos a função rand() que gera números aleatórios, e ajustamos o intervalo multiplicando e somando os valores adequadamente.
A fórmula para gerar um número entre 1 e 50 é:
úó
for(int i = 0; i < TAMANHO; i++) {
    vetor[i] = (rand() % 50) + 1;
}

Passo 6

Vamos exibir os números gerados na tela. Usamos um loop for para percorrer o vetor e printf para mostrar cada número.
printf("Números gerados:\n");
for(int i = 0; i < TAMANHO; i++) {
    printf("%d ", vetor[i]);
}
printf("\n");

Passo 7

Agora, vamos implementar o BubbleSort para ordenar o vetor. O BubbleSort funciona comparando pares de elementos adjacentes e trocando-os se estiverem na ordem errada. Isso é repetido até que todo o vetor esteja ordenado.
int temp;
for(int i = 0; i < TAMANHO - 1; i++) {
    for(int j = 0; j < TAMANHO - i - 1; j++) {
        if(vetor[j] > vetor[j + 1]) {
            // Troca os elementos
            temp = vetor[j];
            vetor[j] = vetor[j + 1];
            vetor[j + 1] = temp;
        }
    }
}

Passo 8

Após ordenar, vamos exibir o vetor ordenado na tela, novamente usando um loop for.
printf("Vetor ordenado:\n");
for(int i = 0; i < TAMANHO; i++) {
    printf("%d ", vetor[i]);
}
printf("\n");

Resposta

Aqui está o código completo que realiza todas as etapas mencionadas:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define TAMANHO 10

int main() {
    int vetor[TAMANHO];
    int temp;

    // Inicializa a semente para gerar números aleatórios diferentes a cada execução
    srand(time(NULL));

    // Gera e armazena os números aleatórios no vetor
    for(int i = 0; i < TAMANHO; i++) {
        vetor[i] = (rand() % 50) + 1;
    }

    // Exibe os números gerados
    printf("Números gerados:\n");
    for(int i = 0; i < TAMANHO; i++) {
        printf("%d ", vetor[i]);
    }
    printf("\n");

    // Aplica o BubbleSort para ordenar o vetor
    for(int i = 0; i < TAMANHO - 1; i++) {
        for(int j = 0; j < TAMANHO - i - 1; j++) {
            if(vetor[j] > vetor[j + 1]) {
                // Troca os elementos
                temp = vetor[j];
                vetor[j] = vetor[j + 1];
                vetor[j + 1] = temp;
            }
        }
    }

    // Exibe o vetor ordenado
    printf("Vetor ordenado:\n");
    for(int i = 0; i < TAMANHO; i++) {
        printf("%d ", vetor[i]);
    }
    printf("\n");

    return 0;
}
Como funciona o código:
  1. Inclusão de bibliotecas: Incluímos stdio.h para funções de entrada e saída, stdlib.h para funções como rand(), e time.h para inicializar a semente do gerador de números aleatórios.
  2. Definição do tamanho do vetor: Usamos #define TAMANHO 10 para definir facilmente o tamanho do vetor.
  3. Inicialização da semente: srand(time(NULL)) assegura que os números aleatórios gerados sejam diferentes a cada execução do programa.
  4. Geração de números aleatórios: Usamos rand() para gerar números, ajustando o intervalo para 1 a 50 com (rand() % 50) + 1.
  5. Exibição dos números gerados: Um loop for percorre o vetor e imprime cada número.
  6. Ordenação com BubbleSort: Dois loops for aninhados percorrem o vetor e trocam elementos adjacentes se estiverem na ordem errada. Isso é repetido até que o vetor esteja completamente ordenado.
  7. Exibição do vetor ordenado: Outro loop for imprime o vetor já ordenado.
Esse código atende a todos os requisitos da questão e está organizado de forma clara para facilitar o entendimento e a aprendizagem.

Exercícios relacionados

Faça um programa que lê três palavras do teclado e imprime as três palavras na ordem inversa.
Um amigo lhe diz que é capaz de ordenar qualquer conjunto de 6 números com no máximo 8 comparações. O seu amigo está falando a verdade ou mentindo? Justifique.
Faça um código para gerar 25 números aleatórios (entre 10 e 40 ) e armazenar em um vetor. Apresente os números gerados na tela e depois organize o vetor com o método de ordenação InsertionSort. Ao final, apresente o vetor ordenado.