como escrever um algoritmo que ordene e imprima um vetor em ordem crescente
Soluções para a tarefa
Respondido por
0
include <stdio.h>
#include <locale.h>
main(){
setlocale(LC_ALL, "Portuguese");
int vetor[10]; // vetor de inteiros
int i, tamanho_vetor;
void OrdemCrescente (int vetor[], int tamanho_vetor); // vetor de inteiros
printf("Digite uma sequência de 10 números e o colocaremos em ordem crescente:\n");
scanf(" %d", &vetor[1]); // Evitar bufferização
scanf(" %d", &vetor[0]); // "
scanf(" %d", &vetor[1]); // "
scanf(" %d", &vetor[2]); // "
scanf(" %d", &vetor[3]); // "
scanf(" %d", &vetor[4]); // "
scanf(" %d", &vetor[5]); // "
scanf(" %d", &vetor[6]); // "
scanf(" %d", &vetor[7]); // "
scanf(" %d", &vetor[8]); // "
scanf(" %d", &vetor[9]); // "
tamanho_vetor = sizeof(vetor) / sizeof(int); // Maneira correta para obter o 'tamanho' de um array
printf("\n%d\n\n", tamanho_vetor);
OrdemCrescente (vetor, tamanho_vetor);
puts("\nOrdem crescente: ");
for(i=0; i<10; i++){
printf("%d ", vetor[i]);
}
}
void OrdemCrescente (int vetor[], int tamanho_vetor){ // vetor de inteiros
int i, f, temporaria;
for(i=0; i<tamanho_vetor; i++){
for(f=0; f<tamanho_vetor; f++){ // Erro = Do modo anterior o último elemento não era comparado, assim não mudava.
if(vetor[i] < vetor[f]){ // A lógica estava invertida, gerando sequência 'int' em ordem reversa.
temporaria = vetor[i];
vetor[i] = vetor[f];
vetor[f] = temporaria;
}
}
}
}
#include <locale.h>
main(){
setlocale(LC_ALL, "Portuguese");
int vetor[10]; // vetor de inteiros
int i, tamanho_vetor;
void OrdemCrescente (int vetor[], int tamanho_vetor); // vetor de inteiros
printf("Digite uma sequência de 10 números e o colocaremos em ordem crescente:\n");
scanf(" %d", &vetor[1]); // Evitar bufferização
scanf(" %d", &vetor[0]); // "
scanf(" %d", &vetor[1]); // "
scanf(" %d", &vetor[2]); // "
scanf(" %d", &vetor[3]); // "
scanf(" %d", &vetor[4]); // "
scanf(" %d", &vetor[5]); // "
scanf(" %d", &vetor[6]); // "
scanf(" %d", &vetor[7]); // "
scanf(" %d", &vetor[8]); // "
scanf(" %d", &vetor[9]); // "
tamanho_vetor = sizeof(vetor) / sizeof(int); // Maneira correta para obter o 'tamanho' de um array
printf("\n%d\n\n", tamanho_vetor);
OrdemCrescente (vetor, tamanho_vetor);
puts("\nOrdem crescente: ");
for(i=0; i<10; i++){
printf("%d ", vetor[i]);
}
}
void OrdemCrescente (int vetor[], int tamanho_vetor){ // vetor de inteiros
int i, f, temporaria;
for(i=0; i<tamanho_vetor; i++){
for(f=0; f<tamanho_vetor; f++){ // Erro = Do modo anterior o último elemento não era comparado, assim não mudava.
if(vetor[i] < vetor[f]){ // A lógica estava invertida, gerando sequência 'int' em ordem reversa.
temporaria = vetor[i];
vetor[i] = vetor[f];
vetor[f] = temporaria;
}
}
}
}
Perguntas interessantes