Skip to content

Instantly share code, notes, and snippets.

@ChekeGT
Last active May 10, 2024 19:11
Show Gist options
  • Save ChekeGT/b546d1c4d7becadbf01b16671301feb5 to your computer and use it in GitHub Desktop.
Save ChekeGT/b546d1c4d7becadbf01b16671301feb5 to your computer and use it in GitHub Desktop.
// Nombre del programador: Francisco Ezequiel Baños Ramírez
// Fecha de creación: 10 de Mayo de 2024
// Descripción: Este programa solicita al usuario tres números, los cuales deben ser mayores de 3 y menores de 15.
// Luego, el programa ordena y muestra estos números de mayor a menor.
// Funcionamiento del programa:
// Datos de entrada:
// Tres números ingresados por el usuario, cada uno debe ser mayor que 3 y menor que 15.
// Si el usuario ingresa un número fuera de este rango, el programa mostrará un mensaje de error
// y solicitará otro número hasta que se ingrese un número válido.
// Datos de salida:
// Los tres números ingresados por el usuario, ordenados de mayor a menor.
// Los números se muestran en un formato amigable para el usuario.
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// Esta función implementa el algoritmo de ordenamiento de burbuja para ordenar un vector de enteros en orden descendente.
vector<int> bubble_sort(vector<int> numbers){
int n = numbers.size();
// Algoritmo de ordenamiento de burbuja
// Iterar sobre todos los elementos
for (int i = 0; i < n-1; i++){
// Iterar sobre los elementos restantes
for (int j = 0; j < n-i-1; j++){
// Si el número actual es menor que el siguiente, intercambiarlos
if (numbers[j] < numbers[j+1]){
// Intercambiar los números
int temporal = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temporal;
}
}
}
return numbers;
}
// Esta función solicita al usuario ingresar tres números entre 3 y 15, y los devuelve como un vector.
vector<int> get_numbers(){
vector<int> numbers;
int number;
for (int i = 0; i < 3; i++){
cout << "Ingrese un numero mayor que 3 y menor que 15: ";
cin >> number;
// Validar que el número esté dentro del rango correcto
if (cin.fail()){
cin.clear();
cin.ignore(1000, '\n');
}
while (!(number > 3 && number < 15)){
cout << "Numero invalido. Ingrese un numero mayo que 3 y menor que 15: ";
cin >> number;
if (cin.fail()){
cin.clear();
cin.ignore(1000, '\n');
}
}
numbers.push_back(number);
}
return numbers;
}
void clear_screen(){
cout << "\033[2J\033[1;1H";
}
int main(){
cout << "Este programa ordena tres numeros de mayor a menor." << endl;
vector<int> numbers = get_numbers();
numbers = bubble_sort(numbers);
clear_screen();
cout << "Los numeros ordenados de mayor a menor son: ";
for (int i = 0; i < 3; i++){
cout << numbers[i] << " ";
}
cout << endl;
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment