[ Foro de C# ]
tengo este código:
Métodos:
class Program { static void agregar(int[] lista, int cantidad, ref int tope) {//agrega un nuevo elemento a un array con tope lista[tope] = cantidad; tope++; }
static void cargarjugada (int[,]m, int napostante) //CARGAR LA JUGADA PARA CADA APOSTANTE
{
for(int col=0; col<m.GetLength(1);col++)
{
m[napostante,col] = Convert.ToInt32(Console.ReadLine());
}
}
Y este en el main:
case 1: Console.Clear(); Console.WriteLine("\t\t1 - Agregue una apuesta: "); if (tope < nombre.Length) {
Console.Write("Ingrese Nombre: ");
nombre[tope] = Console.ReadLine();
Console.Write("Ingrese Apellido: ");
apellido[tope] = Console.ReadLine();
Console.Write("Ingrese su Jugada : ");
cargarjugada(matriz, tope);
agregar(vector, cantidad, ref tope);
}
else
{
Console.WriteLine("No hay mas cupos");
Console.ReadLine();
}
como podría controlar que los números ingresados no se repitan y no se ingresen letras en lugar de numeros?, esto mismo lo puedo aplicar luego para un Random. Es programación estructurada y puedo utilizar comparadores, variables, matrices y arrays.
Buenas.
Puedes probar, que cada vez que se introduzca un número, compararlo con todos los datos que tengas en el array. Si el número ya está, que vuelva a pedir otro número y si no, que continue.
Respecto a lo de asegurar que sólo sean números y no letras, puedes utilizar try-catch. Así, cada vez que no introduzcas el formato adecuado, lo tengas controlado y puedas volver a pedir hasta que el formato sea adecuado.
Primero haría el try-catch para asegurar que es un número, y luego lo compararía con el array.
Algo así se me ocurre. Espero que te sirva. Seguramente se pueda optimizar.
using System;
public class Prueba
{
public static void Main()
{
int numero = 0;
int[] vector = {5, 7, 9, 12, 35, 4, 34, 13, 21, 29};
bool esNumero = false;
//COMPRUEBO Y FILTRO SI ES UN NÚMERO
do
{
try
{
Console.WriteLine("Introduce un número");
numero = Convert.ToInt32(Console.ReadLine());
esNumero = true;
}
catch(FormatException)
{
Console.WriteLine("No es un número válido");
esNumero = false;
}
}
while(esNumero == false);
//COMPRUEBO SI NÚMERO YA EXISTE EN EL ARRAY
esNumero = false;
for(byte i = 0 ; i < vector.Length ; i++)
{
if(numero == vector[i])
{
esNumero = true;
break;
}
}
if(esNumero == true)
Console.WriteLine("El número ya existe");
else
Console.WriteLine("El número no existe");
}
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)