Dev - C++ - Obtener los valores nulos sobre la diagonal principal.(Arrays)

 
Vista:

Obtener los valores nulos sobre la diagonal principal.(Arrays)

Publicado por Mikem (1 intervención) el 19/10/2014 14:23:44
Hola. Esto es c++. Quiero saber cómo hacer para que se imprima la CANTIDAD de ELEMENTOS NULOS de la matriz pero SOLO LOS QUE ESTÁN ARRIBA (por encima, sobre) de LA DIAGONAL PRINCIPAL.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
const int TAM=4;
int main()
 
{
	int nonul=0;
	int c=0;
	int M[TAM][TAM]={1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
 
int i,j;
//---------------------------------EL ERROR ESTÁ AQUÍ:
  for (int i=0; i<=TAM-2; i++)
  for (int j=1; j<=TAM-1; j++)
  if(M[i][j]==0)
  {
	c++;
		}
 cout<<"nulos:"<<c<<endl;
 
}
Saludos :D
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
sin imagen de perfil
Val: 338
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Obtener los valores nulos sobre la diagonal principal.(Arrays)

Publicado por Martín (158 intervenciones) el 20/10/2014 12:14:26
Hola;

Lo que veo en tu código es que hay algunas variables de más, que el compilador debe estar señalándote con advertencias, pero por lo demás el programa funciona.

En una hoja de papel cuadriculado, ¿cuáles son las filas y cuáles las columnas? ¿Siempre es así? ¿Cómo la estás viendo?

Si supones que la primera dimensión es el número de columnas y que la segunda es el número de filas, puedes representarte esa matriz así:
1
2
3
4
int M[TAM][TAM]= {  1,    2,    3,    4,
                    5,    6,    7,    8,
                    9,   10,   11,   12,
                   13,   14,   15,   16 };
Entonces, tu diagonal principal sería 1, 6, 11, 16.

Por el contrario, si pensaras en una matriz donde la primera dimensión representara el número de filas y la segunda dimensión el número de columnas, tendrías que cambiar tu algoritmo. No hay una regla universal para decidir cuál de los dos criterios es el correcto, de cualquier modo, son perfectamente equivalentes.

Martín
Profesor de C++
Tutorías rentadas por Email
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