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:
- Gera 10 números aleatórios entre 1 e 50.
- Armazena esses números em um vetor (ou array).
- Mostra esses números na tela.
- Organiza o vetor usando o método de ordenação BubbleSort.
- 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:
-
Inclusão de bibliotecas: Incluímos
stdio.h
para funções de entrada e saída,stdlib.h
para funções comorand()
, etime.h
para inicializar a semente do gerador de números aleatórios. -
Definição do tamanho do vetor: Usamos
#define TAMANHO 10
para definir facilmente o tamanho do vetor. -
Inicialização da semente:
srand(time(NULL))
assegura que os números aleatórios gerados sejam diferentes a cada execução do programa. -
Geração de números aleatórios: Usamos
rand()
para gerar números, ajustando o intervalo para 1 a 50 com(rand() % 50) + 1
. -
Exibição dos números gerados: Um loop
for
percorre o vetor e imprime cada número. -
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. -
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.