Dev - C++ - Suma de la diagonal principal y secundaria de una matriz

 
Vista:
sin imagen de perfil
Val: 31
Ha disminuido su posición en 4 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Suma de la diagonal principal y secundaria de una matriz

Publicado por fernanda (10 intervenciones) el 25/01/2021 00:17:17
Se debe imprimir en una línea la suma de todos los elementos de la diagonal principal y la diagonal secundaria de la matriz. NOTA: Tome en cuenta que para una matriz que tiene una cantidad n impar de renglones y columnas, hay un elemento exactamente al centro de la matriz, y por ese motivo pertenece a ambas diagonales, en este caso, para el resultado de la suma solo se acumula una vez dicho número.


¿Cómo implemento la suma de la diagonal secundaria, sumando una sola vez el numero de en medio?

Este es mi codigo, debo utilizar la biblioteca #include <stdio.h>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#define TAM 10
 
int main(int argc, char *argv[]) {
	int MATRIZ[TAM][TAM];
	int m,renglon,columna;
	int SUMADIAGONALPRINCIPALYSECUNDARIA;
	scanf ("%d",&m);
 
	for(renglon=0;renglon<m;renglon++){
		for(columna=0;columna<m;columna++){
			scanf ("%d", &MATRIZ[renglon][columna]);
		}
	}
	SUMADIAGONALPRINCIPALYSECUNDARIA=0;
	for(renglon=0;renglon<m;renglon++){
		SUMADIAGONALPRINCIPALYSECUNDARIA=SUMADIAGONALPRINCIPALYSECUNDARIA+MATRIZ[renglon][2-renglon];
	}
	printf ("%d", SUMADIAGONALPRINCIPALYSECUNDARIA);
 
	return 0;
}
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
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Suma de la diagonal principal y secundaria de una matriz

Publicado por Alfil (1444 intervenciones) el 27/01/2021 19:32:28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
 
int main()
{
    int sz;
    int suma1 = 0, suma2 = 0;
 
    printf("\nDimension: ");
    scanf("%d", &sz);
 
    int m[sz][sz];
    int k = sz - 1;
 
    for (int i = 0; i < sz; i++)
    {
        printf("\nFila %d:\n", i + 1);
        for (int j = 0; j < sz; j++)
        {
            printf("(%d/%d): ", j + 1, sz);
            scanf("%d", &m[i][j]);
        }
    }
 
    for (int i = 0; i < sz; i++)
    {
        printf("\n | ");
        for (int j = 0; j < sz; j++)
        {
            printf("%d ", m[i][j]);
            if (i == j)
                suma1 += m[i][j];
            if (j == k )
            {
                if (sz % 2 != 0 && i == j)
                    k--;
                else
                {
                    suma2 += m[i][j];
                    k--;
                }
            }
        }
        printf(" |");
    }
    printf("\n");
 
    printf("\nDiagonal 1: %d", suma1);
    printf("\nDiagonal 2: %d\n\n", suma2);
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar