Dev - C++ - Imprime matriz mal

   
Vista:

Imprime matriz mal

Publicado por Nicolas (2 intervenciones) el 21/10/2017 21:02:55
Hola, sinceramente no entiendo porque el siguiente codigo me imprime mal la primer fila de la matriz, no veo el error. Alguno encuentra por que lo imprime asi?

Codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int m=4;
    int n=4;
    int matriz[m][n];
 
    for (int j = 0; j <= n; j++)
        matriz[0][j] = j;
 
    for (int i = 1; i <= m; i++)
        matriz[i][0] = i;
 
	for (int X=0;X<=n;X++) {
		printf("| %d |",matriz[0][X]);
	}
	printf("\n");

Imprime:
| 0 || 1 || 2 || 3 || 1 |
Cuando en realidad tendria que imprimir:
| 0 || 1 || 2 || 3 || 4 |
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Imprime matriz mal

Publicado por juanki (57 intervenciones) el 21/10/2017 21:23:57
Hola

Mira tu segundo for, los índices empiezan por cero.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imprime matriz mal

Publicado por Nicolas (2 intervenciones) el 21/10/2017 23:53:09
Hola, da igual si el segundo for arranca en 1 o en 0, porque el for anterior ya cargo el lugar [0][0]. El error no es ese.
El error estaba en crear la matriz con un lugar menos, tenia que ser creada con n+1 y m+1.

De igual manera, gracias por responder.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imprime matriz mal

Publicado por juanki (57 intervenciones) el 22/10/2017 00:01:24
Hola

Viendo otra vez en código, en error está en la condición de los bucles, tú pones <= y tiene que ser solo <

Recuerda que si declaras un array de 4 elementos, estos van del 0 al 3

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar