elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Creacion Matriz nxn Automatica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Creacion Matriz nxn Automatica  (Leído 6,532 veces)
miguelc++

Desconectado Desconectado

Mensajes: 5


some mistakes get made


Ver Perfil
Creacion Matriz nxn Automatica
« en: 21 Noviembre 2021, 22:36 pm »

Hola, necesito ayuda para poder entender que es lo que estoy haciendo mal.

Tengo que hacer que mi programa imprima automaticamente una matriz nxn de la dimension que el usuario introduzca. No obstante, no logro que me de mas de un numero por fila.

Adjunto código:
Código:
//proyecto
#include <stdio.h>

int main(){

int i, j, filas;

printf("Ingrese diemension de matriz: ");
scanf("%i",&filas);

for(i = 1;i <= filas;i++)
{

printf("%02d ", i);

printf("\n");
}


return 0;
}


Se supone debo lograr que me imprima algo como esto:



Estoy muy seguro que en lo que estoy fallando son los for.


En línea

BloodSharp


Desconectado Desconectado

Mensajes: 802


El Messi-Vegeta :D


Ver Perfil
Re: Creacion Matriz nxn Automatica
« Respuesta #1 en: 21 Noviembre 2021, 23:30 pm »

Estoy muy seguro que en lo que estoy fallando son los for.

El código está casi completo, solamente te falta un for por columnas y una condición que verifique si está en la diagonal invertida...
Como medida adicional para evitar que la matriz no sea cuadrada podrías meter un do while extra al principio.

EDIT: Acabé de probarlo tu código con las recomendaciones de arriba y funciona correctamente



B#


« Última modificación: 21 Noviembre 2021, 23:33 pm por BloodSharp » En línea



miguelc++

Desconectado Desconectado

Mensajes: 5


some mistakes get made


Ver Perfil
Re: Creacion Matriz nxn Automatica
« Respuesta #2 en: 22 Noviembre 2021, 17:17 pm »

Hola, logré arreglar lo de las columnas y ya me da las matrices de la dimensión que quiera.

¿Cómo implemento lo de la diagonal para que me de asteriscos(**)?  



Código:
//proyecto
#include <stdio.h>

int main(){

int i, j, filas;

printf("Ingrese dimension de matriz: ");
scanf("%i",&filas);

for(i=1;i<=filas;i++)
{
    for(j=1;j<=filas;j++)

    
printf("%02d ", j);

printf("\n");
}


return 0;
}



« Última modificación: 22 Noviembre 2021, 19:58 pm por miguelc++ » En línea

BloodSharp


Desconectado Desconectado

Mensajes: 802


El Messi-Vegeta :D


Ver Perfil
Re: Creacion Matriz nxn Automatica
« Respuesta #3 en: 22 Noviembre 2021, 21:55 pm »

Hola, logré arreglar lo de las columnas y ya me da las matrices de la dimensión que quiera. ¿Cómo implemento lo de la diagonal para que me de asteriscos(**)?

Bien, añadiste el for que te mencioné para las columnas ahora solo falta la condición ( if else ) que verifica si el elemento de la matriz pertenece a la diagonal principal, prestá mucha atención a la tabla de 5x5 que mostraste hace un momento, si te fijás bien hay una operación matemática elemental que se cumple si encaja justo en la posición de la tabla por filas y columnas y dicha operación equivale a la dimensión total de las filas o columnas ingresadas al principio, vale aclarar que a la operación matemática se le tiene que restar 1 porque el primer elemento de la matriz comienzan con el valor 01...


B#
« Última modificación: 22 Noviembre 2021, 21:57 pm por BloodSharp » En línea



miguelc++

Desconectado Desconectado

Mensajes: 5


some mistakes get made


Ver Perfil
Re: Creacion Matriz nxn Automatica
« Respuesta #4 en: 23 Noviembre 2021, 05:16 am »

Lo he intentado se todas las formas que se me ocurre, pero todavía no consigo entender bien.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Creacion Matriz nxn Automatica
« Respuesta #5 en: 23 Noviembre 2021, 08:19 am »

Sabiendo que los asteriscos van se colocan en (hablamos de una matriz de 5x5):
Fila 1, columna 5;
Fila 2, columna 4;
Fila 3, columna 3;
Fila 4, columna 2;
Fila 5, columna 1.

¿Qué podrían tener en común los pares
(5, 1)
(4, 2)
(3, 3)
(2, 4)
(1, 5)?

Esa respuesta es la que necesita el if para dibujar el número o los asteriscos.
En línea

fzp

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Creacion Matriz nxn Automatica
« Respuesta #6 en: 23 Noviembre 2021, 11:17 am »

MAFUS y BloodSharp: creo que vuestras indicaciones van en el sentido de relacionar -calcular- la posicion de los asteriscos (para el if de la j) a partir de n y de i; con una fórmula ciertamente sencilla. Pero quizá eso despiste un poco a miguelc++.

Otra forma de verlo (quizá más asequible a miguelc++) sería no buscar la posición de los astericos en función del valor de n y de i, sino con una variable distinta: esa variable empieza en n para i=1 y disminuye en 1 en cada fila (cada ciclo de i). Es menos elegante quizá pero vale igual.
----------------------------------------------------------------------
También creo que la forma de representar la matriz no es adecuada al concepto matemático de los elementos de una matriz. Lo suyo sería imprimir las parejas i-j que representarían los subíndices de los distintos elementos de la matriz. Aunque claro si lo que le piden es que lo haga de esa manera, pues es lo que hay. Supongo que el ejercicio está pensado para lo de los asteriscos mayormente.
« Última modificación: 23 Noviembre 2021, 11:20 am por fzp » En línea

miguelc++

Desconectado Desconectado

Mensajes: 5


some mistakes get made


Ver Perfil
Re: Creacion Matriz nxn Automatica
« Respuesta #7 en: 23 Noviembre 2021, 17:32 pm »

Siento que no puedo lograr lo que se me pidió. Mi cabeza no logra comprender sus explicaciones para la implementación de esos asteriscos. Igualmente agradezco por el tiempo que se tomaron en responder mis dudas.

Como pudieron notar no soy muy avanzado en programación, pero se hace lo que se puede .  Intentaré buscar ejercicios mas básicos  y acordes a mi nivel para entonces ir subiendo el nivel progresivamente.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Creacion Matriz nxn Automatica
« Respuesta #8 en: 24 Noviembre 2021, 10:13 am »

Te lo explico para el ejemplo de 5x5.
Dije:
Citar
¿Qué podrían tener en común los pares
(5, 1)
(4, 2)
(3, 3)
(2, 4)
(1, 5)?

Si te das cuenta:
5+1 = 6
4+2 = 6
3+3 = 6
2+4 = 6
1+5 = 6

Sabiendo que tu vas desde 1 hasta 5, siendo este caso filas = 5
en tu if, dentro del for de j debería poner:
Código:
if(i+j == filas+1) {
    printf("** ");
} else {
    printf("%02d ", j);
}
En línea

BloodSharp


Desconectado Desconectado

Mensajes: 802


El Messi-Vegeta :D


Ver Perfil
Re: Creacion Matriz nxn Automatica
« Respuesta #9 en: 24 Noviembre 2021, 15:52 pm »

Ya que MAFUS puso su solución muestro mi solución al problema, mi solución también controla que la dimensión ingresada sea una matriz cuadrada como puede verse en la imagen:



Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int i, j, filas, columnas;
  6.  
  7.    do
  8.    {
  9.        printf("Ingrese la dimension de matriz: ");
  10.        scanf("%i*%i", &filas, &columnas);
  11.    } while (filas != columnas);
  12.  
  13.    for(i = 1; i <= filas; i++)
  14.    {
  15.        for(j = 1; j <= columnas; j++)
  16.        {
  17.            if ((i + j -1) == columnas)
  18.                printf("** ");
  19.            else
  20.                printf("%02d ", j);
  21.        }
  22.  
  23.        printf("\n");
  24.    }
  25.  
  26.    return 0;
  27. }


B#
« Última modificación: 24 Noviembre 2021, 15:56 pm por BloodSharp » En línea



Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines