Matriz simetrica
desarrollar un programa en c que genere una determinada matriz simetrica y muestra por pantalla la suma de su diagonal principaly secundaria.El programa leerá por teclado dos numeros que representan el limite inferior y superior de una serie de numeros enteros. A continuacion se creARA una matriz que tenga tanta filas y columnas como elementos tenga la serie anterior.La primera fila almacenara los elementos de la serie empezando por el limite inferior y acabandoen el limite superior, lasegunda fila tendra la serie que comience en el limite inferior mas uno y finalice en el limite superior mas uno, y asi sucesivamente.El programa mostrara por pantalla la matriz construida y la suma de la diagonal principal y la de la diagonal secundaria.
Ejemplo de ejecucion:
INtroduzca el limite inferior: 3
introduzca el limite superior: 6
Matriz=
3 4 5 6
4 5 6 7
5 6 7 8
6 7 8 9
la suma de la diagonal principal es 24
la suma de la diagonal secundaria es 24
Consideraciones: se definira una constante MAX que tendra el numero maximo de filas y columnask se va a construir,en este caso el numero maximo sera 100
El programa controlara los siguientes errores:
-si el valordel limite superior introducido es menor k el del inferior se intercambian los valores , se mostrara un mensaje k indike k se han intercambiadoy se seguira el procesonormalmente
-si el numero de elementos en la serie es mayor qu e el tamaño maximo de filas y columnas de la matriz(determinado por la constante MAX)se finalizara el programa y se mostrara un mensaje de error avisando de este hacho e indicando el tamaño maximo permitido
Ejemplo de ejecucion:
INtroduzca el limite inferior: 3
introduzca el limite superior: 6
Matriz=
3 4 5 6
4 5 6 7
5 6 7 8
6 7 8 9
la suma de la diagonal principal es 24
la suma de la diagonal secundaria es 24
Consideraciones: se definira una constante MAX que tendra el numero maximo de filas y columnask se va a construir,en este caso el numero maximo sera 100
El programa controlara los siguientes errores:
-si el valordel limite superior introducido es menor k el del inferior se intercambian los valores , se mostrara un mensaje k indike k se han intercambiadoy se seguira el procesonormalmente
-si el numero de elementos en la serie es mayor qu e el tamaño maximo de filas y columnas de la matriz(determinado por la constante MAX)se finalizara el programa y se mostrara un mensaje de error avisando de este hacho e indicando el tamaño maximo permitido
Hola! Lo tengo pero en mi lengua :( te lo traducire,ok!
#include <conio.h>
#include <stdio.h>
void citaj (int x[][10], int f, int c);
void napis (int x[][10], int f, int c);
int sym (int x[][10], int d);
main ()
{
int matica[10][10];
int dimenzia;
do {
printf ("Zadaj dimenziu maticu (symetricka matica je stvorcova matica typu NxN) (maximum 10)\n");
scanf ("%d", &dimenzia);
} while (dimenzia<1 || dimenzia>10);
printf ("Zadaj prvky matice:\n");
citaj (matica, dimenzia, dimenzia);
printf ("\nZADANA MATICA JE:\n");
napis (matica, dimenzia, dimenzia);
if (sym (matica, dimenzia)) printf ("\nJE symetricka\n");
else printf ("\nNIE JE symetricka\n");
getch ();
}
void citaj (int x[][10], int f, int c)
{int i, j;
for (i=0;i<f;i++)
for (j=0;j<c;j++)
scanf ("%d", &x[i][j]);
}
void napis (int x[][10], int f, int c)
{int i, j;
for (i=0;i<f;i++)
{
for (j=0;j<c;j++)
printf ("%8d", x[i][j]);
printf ("\n");
}
}
int sym (int x[][10], int d)
{int i, j, symet;
symet = 1;
for (i=0;i<d-1;i++)
for (j=i+1;j<d;j++)
if (x[i][j] != x[j][i]) symet = 0;
return (symet);
}
#include <conio.h>
#include <stdio.h>
void citaj (int x[][10], int f, int c);
void napis (int x[][10], int f, int c);
int sym (int x[][10], int d);
main ()
{
int matica[10][10];
int dimenzia;
do {
printf ("Zadaj dimenziu maticu (symetricka matica je stvorcova matica typu NxN) (maximum 10)\n");
scanf ("%d", &dimenzia);
} while (dimenzia<1 || dimenzia>10);
printf ("Zadaj prvky matice:\n");
citaj (matica, dimenzia, dimenzia);
printf ("\nZADANA MATICA JE:\n");
napis (matica, dimenzia, dimenzia);
if (sym (matica, dimenzia)) printf ("\nJE symetricka\n");
else printf ("\nNIE JE symetricka\n");
getch ();
}
void citaj (int x[][10], int f, int c)
{int i, j;
for (i=0;i<f;i++)
for (j=0;j<c;j++)
scanf ("%d", &x[i][j]);
}
void napis (int x[][10], int f, int c)
{int i, j;
for (i=0;i<f;i++)
{
for (j=0;j<c;j++)
printf ("%8d", x[i][j]);
printf ("\n");
}
}
int sym (int x[][10], int d)
{int i, j, symet;
symet = 1;
for (i=0;i<d-1;i++)
for (j=i+1;j<d;j++)
if (x[i][j] != x[j][i]) symet = 0;
return (symet);
}
