Dev - C++ - Programa en Turbo C que sume la diagonal de un arreglo de 5x5

   
Vista:

Programa en Turbo C que sume la diagonal de un arreglo de 5x5

Publicado por Programa en Turbo C (6 intervenciones) el 15/08/2017 18:47:38
"AYUDA POR FAVOR CON ESTE PROGRAMA EN TURBO C"

Escribir un programa que cargue un arreglo de 5x5 con números enteros. Determine la suma de la diagonal principal y la diagonal secundaria. Imprimir ambos resultados.
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 Xhred

Programa en Turbo C que sume la diagonal de un arreglo de 5x5

Publicado por Xhred (18 intervenciones) el 16/08/2017 02:26:40
Lo compile en Dev C++ ademas de que olvide que era una mariz de 5x5 y termine haciendola dinamica determinando el tamaño de la matriz por medio de teclado, espero este programa te sirva puesto que nunca he usado turbo C.

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <conio.h>//para usar el getch();
#include <ctime> //para utilizar el time(0) y genere numeros al azar
#include <cstdlib>//para el uso de srand() y rand()
#include <windows.h>//esto solamente para el color
 
using namespace std;
int filas, columnas, numeroequis;
int i, j, diagonalprincipal=0, diagonalsecundaria=0;
int **matriz;
 
//use la funcion setcolor para ver la diagonal principal y secundaria
//y comprobar que funcionara correctamente puedes eliminarlo
//si asi lo deseas.
//string setcolor(unsigned short color)
//{
//    HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
//    SetConsoleTextAttribute(hcon, color);
//    return "";
//}
 
int main(int argc, char** argv) {
	srand(time(0));//con esta funcion se genera numeros al azar sin un patron especifico
	cout << "Introduzca el tamano de la matriz ";
	cin >> filas;
	columnas = filas;
	//si en el for iniciamos la i, j = 0 entonces la cantidad maxima de filas y columnas
	//es tal que filas - 1 y columnas - 1
	//por ejemplo si se introduce el numero 7 entonces el valor maximo de
	//i y j es 6 pero si iniciamos la i, j = 1 la cantidad maxima de i y j es
	//la que introduce por teclado.
	numeroequis = filas - 1;
 
	//generamos la matriz según la cantidad introducida por teclado
	//que otorgar el tamaño de la matriz.
	matriz = new int *[filas];
    for(i=0;i<filas;i++)
    {
        matriz[i] = new int[columnas];
    }
 
    for(i=0;i<filas;i++)
    {
    	for(j=0;j<columnas;j++)
    	{
    		matriz[i][j] = rand() % 10;//le damos un valor al azar a la matriz con numeros entre 0 y 9
    		if(i==j) //diagonal principal cuando filas (i) y comlumas (j) son iguales.
    		{
    			//sumando los elementos de la diagonal principal y mostrando en pantalla matriz
    			diagonalprincipal=diagonalprincipal + matriz[i][j];
    			//setcolor(12);
    			cout << matriz[i][j] << " ";
			}
			//la diagonal secundaria es tal que i = 9 y j = 0
			//despues i = 8 y j = 1.... i = 0 y j = 9
			//que es justamente lo que determina esta condicinal
			else if(i==(numeroequis-j))
			{
				//sumando los elementos de la diagonal secundaria y mostrando en pantalla matriz
				diagonalsecundaria=diagonalsecundaria + matriz[i][j];
				//setcolor(10);
				cout << matriz[i][j] << " ";
			}
			else
			{
				//muestra en pantalla los demas numeros que no cayeron en las anteriores condicionales
				//setcolor(7);
				cout << matriz[i][j] << " ";
			}
		}
		cout << endl;
	}
 
    //setcolor(7);
    cout << "Suma de la diagonal pincipal   = " << diagonalprincipal << endl;;
    cout << "Suma de la diagonal secundaria = " << diagonalsecundaria << endl;
 
	getch();
	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
0
Comentar
Revisar política de publicidad