[ Foro de C# ]

Programa que genere Matriz diagonal de n x n

20-Nov-2014 00:04
Robert Saflo
3 Respuestas

No eh podido resolverlo, alguien podría ayudarme? Darme algún consejo?
Ya leí, escuche, mire mucho sobre matrices en C# pero no me queda.

Codificar un programa que genere una Matriz de n x n, en la cual asigne ceros (0) a todos los elementos, excepto a los de la diagonal principal donde asignara unos (1).
[Consola, C#]

Suponiendo que yo indico que la matriz sea de 3x3 me debería imprimir en pantalla algo así:
1 0 0
0 1 0
0 0 1

Gracias, me serviría de mucho su ayuda.


21-Nov-2014 10:01
Nacho Cabanes (+84)

¿Sabes crear una matriz de tamaño 3x3?

¿Sabes rellenarla por completo con ceros?

Si sabes hacer esas dos cosas (que son fáciles), el hacer una diagonal principal es simplemente cuestión de dar el valor 1 a los elementos en los que "i == j" (usando un "if").

Inténtalo y pon aquí tu propuesta, para ver en qué falla.


24-Nov-2014 21:15
Robert Saflo

Es una matriz de 3 por 3, pero no se que debo hacer para yo decirle de cuanto la quiero que me salgan los ceros y los unos...


{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] a=new int [3,3];
            Console.WriteLine("Ingresa elementos de Matriz:");

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    a[i,j] = int.Parse(Console.ReadLine());
                }
                
            }

            //imprime elementos
            Console.WriteLine("Imprime arreglo");
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(" " + a[i, j]); 
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }
}





25-Nov-2014 10:36
Nacho Cabanes (+84)

Es que estás pidiendo los datos al usuario. No debes pedirlos, sino generarlos:


using System;

class MatrizDiagonal 
{ 
   static void Main(string[] args) 
   { 
       int[,] a=new int [3,3]; 

       for (int i = 0; i < 3; i++) 
       { 
           for (int j = 0; j < 3; j++) 
           { 
               if (i==j)
                    a[i,j] = 1; 
               else
                    a[i,j] = 0; 
           } 
            
       } 

       //imprime elementos 
       Console.WriteLine("Imprime arreglo"); 
       for (int i = 0; i < 3; i++) 
       { 
           for (int j = 0; j < 3; j++) 
           { 
               Console.Write(" " + a[i, j]); 
           } 
           Console.WriteLine(); 
       } 
       Console.ReadKey(); 
   } 
} 








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