[ Foro de C# ]

cargar matriz

22-Jun-2017 18:21
Alejandro Fuentes
1 Respuestas

buenas, necesito con un metodo, cargar una matriz, que tenga la misma cantidad (filas) de apostantes que se pide al principio y 5 columnas que son 5 bolillas de la loteria, por ahora tengo esto

 
{
    namespace Proyecto
{
    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)
            {
 
 
            for (int fila=0; fila<m.GetLength(0); fila++) 
            {
                for(int col=0; col<m.GetLength(1);col++)
                {
                    Console.Write("Ingrese su Jugada : ");
                    m[fila,col] = Convert.ToInt32(Console.ReadLine());
                }
                   }
                  }
 
 
 
 
 
        static void Main(string[] args)
        {
 
            string[] nombre;
            string[] apellido;
            int opcion, tope = 0, cantidad;
            bool seguir = true;
 
 
 
            Console.WriteLine("\t\t*****Bienvenidos al 5 de Oro*****");
            Console.WriteLine();
            Console.WriteLine();
 
            Console.WriteLine("Ingrese la cantidad de apostantes: ");
            cantidad= Convert.ToInt32(Console.ReadLine());
            int[] vector = new int[cantidad];
            nombre = new string[cantidad];
            apellido = new string[cantidad];
            int[,] matriz = new int[cantidad, 5];
 
 
            while (seguir)
            {
                Console.Clear();
                Console.WriteLine("\t\t1-Agregar apuesta");
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("\t\t2-Agregar apuesta sorpresa");
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("\t\t3-Eliminar Apuesta");
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("\t\t4-Salir");
                Console.WriteLine();
                Console.Write("Ingrese opcion: ");
                opcion = Convert.ToInt32(Console.ReadLine());
                switch (opcion)
                {
 
                    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();
                            cargarjugada(matriz);
                            agregar(vector, cantidad, ref tope);
 
 
 
 
 
                        }
                        else
                        {
                            Console.WriteLine("No hay mas cupos");
                            Console.ReadLine();
                        }
 
 
 
                        break;
 




pero el tema es que al ejecutar el programa me pregunta cuantos apostantes son, si le pongo 2, cuando voy a generar la apuesta me pregunta nombre apellido y me deja poner 10 numeros en vez de solo 5 y que me vuelva a preguntar el nombre y apellido del 2do participante. En cambio si pongo que solo es 1 participante si, solamente me deja poner 5 bolillas, me faltara algun while en el switch del case 1? gracias


25-Jun-2017 00:11
Nacho Cabanes (+32)

No termino de entender la lógica de tu programa. Si dices que hay 3 apostantes, ¿debería pedirte 3 nombres y apellidos cuando escoges "Agregar apuesta"? Si es así, bastaría con usar un "for" dentro del "case 1". Si prefieres que se añada de uno en uno, ¿por qué "cargarjugada" usa un doble "for" y además no comprueba el valor de la variable "tope"?






(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.)