Skip to content
Snippets Groups Projects
Commit 898941f2 authored by Nicolas Mantilla Molina's avatar Nicolas Mantilla Molina
Browse files

Ejercicio Joker Primitiva Parcial 2

parent 97ee5146
No related branches found
No related tags found
No related merge requests found
#include <iostream>
#include <cmath>
#include <fstream>
#include <vector>
#include <sstream>
using namespace std;
int main()
{
cout << "Bienvenido al verificador de acierto en el juego Joker de la lotería Primitiva" << endl;
// Primero leemos el archivo input y verificamos su validez
cout << "Por favor ingrese la dirección del archivo con el input: ";
string nombre, linea;
cin >> nombre; // Utilizar sample.in en este caso
ifstream input;
input.open(nombre);
if (!input)
{
cout << "Archivo inválido." << endl;
exit(0);
}
// Leemos el primer valor como el número de casos a evaluar
int n;
getline(input,linea);
n = stoi(linea);
// Leemos el resto de lineas y separamos los números del Joker y el boleto por espacio
string juegos[n][2];
int cont=0;
while (getline(input, linea))
{
stringstream ss(linea); // Creamos un flujo a partir la linea (como si lo leyera siendo un archivo)
string token;
int cont2 = 0;
while(getline(ss, token, ' ')) // Obtenemos "lineas" separadas por espacio
{
juegos[cont][cont2] = token; // Los dejamos como strings para no perder los ceros a la izquierda
cont2++;
}
cont++;
}
// Imprimimos los números del vector para verificar
cout << "Se ingresaron los números: " << endl;
for (int i=0; i<n; i++)
{
cout << to_string(i+1)+". " << juegos[i][0] << ", " << juegos[i][1] << endl;
}
// Ahora, para cada par de números, se crean arrays para poder comparar sus dígitos
string respuestas[n];
for (int i = 0; i<n; i++)
{
int num1[7], num2[7];
for (int c = 0; c<7; c++)
{
string str(1,juegos[i][0][c]); // Se cambian a strings para poder usar stoi()
num1[c] = stoi(str);
string str1(1, juegos[i][1][c]);
num2[c] = stoi(str1);
}
// Ordenamos cada array para que sea más sencillo compararlos
for (int l=0; l<7; l++)
{
for (int m=l+1; m<7; m++)
{
if (num1[l]>num1[m])
{
int temp = num1[l];
num1[l] = num1[m];
num1[m] = temp;
}
if (num2[l]>num2[m]) // Aprovechamos el mismo tamaño para ordenarlos al tiempo
{
int temp = num2[l];
num2[l] = num2[m];
num2[m] = temp;
}
}
}
// Realizamos la comparación de los caracteres
bool igualdad = true; // Suponemos que son iguales hasta que se encuentre uno que no lo sea
for (int l=0; l<7; l++)
{
if (num1[l] != num2[l]) {igualdad = false; break;} // Si alguno es diferente, se cambia igualdad y se deja de comprobar
}
// Se asignan las respuestas dependiendo del si se comprueba o no la igualdad
if (igualdad) respuestas[i] = "GANA";
if (!igualdad) respuestas[i] = "PIERDE";
}
// Finalmente imprmimos las respuestas
cout << "Los resultados para cada combinación de números de Joker y boletos es: " << endl;
cont=1;
for (string v:respuestas)
{
cout << to_string(cont)+". " << v << endl;
cont++;
}
}
// Gracias por ver :D
\ No newline at end of file
File added
File added
4
1234567 7654321
0011223 0112233
1234567 1234567
0123450 0012345
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment