elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Matriz principal con secundaria
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Matriz principal con secundaria  (Leído 5,284 veces)
Jaua10

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Matriz principal con secundaria
« en: 21 Noviembre 2014, 06:01 am »

Buenas noches disculpen tengo una duda es posible hacer una matriz de 5x5 y que su diagonal principal se cambie por la diagonal secundaria? y viceversa? tengo un codigo pero no se como hacerlo en dev c++


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Matriz principal con secundaria
« Respuesta #1 en: 21 Noviembre 2014, 06:05 am »

si es posible...

no se dan codigos hechos, se resuelven dudas, publica lo que llevas de codigo (usa las etiqeutas GeSHi) y en que tienes duda


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Jaua10

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Matriz principal con secundaria
« Respuesta #2 en: 21 Noviembre 2014, 06:10 am »

Esto es lo que tengo adelantado y llevo dias tratando de resolver pero no logro conseguir que me ponga la diagonal principal como la secundaria
Código:
#include <stdio.h>
#include <conio.h>
main()
{
      int fila,columna,i,n,e,aux;  
      int matriz[10][10];        
      printf("Ingrese el dimension de fila: ");
      scanf("%d",&fila);
      printf("Ingrese el dimension de columna: ");
      scanf("%d",&columna);
      matriz[1][1]=matriz[fila][columna];
      printf("\nMatriz de [%d]x[%d]\n",fila,columna);
      printf("\n");
      for(i=0;i<fila;i++){
                          for(n=0;n<columna;n++){
                                              printf("Ingrese el valor de posicion [%d][%d]: ",i+1,n+1);
                                              scanf("%d",&matriz[i][n]);                                              
                                              }
                          }
      printf("\nLa matriz original:\n\n");
      for(i=0;i<fila;i++){
                          for(n=0;n<columna;n++){
                                              printf("[%d]",matriz[i][n]);
                                                                                            
                                              }
                                              printf("\n");
                          }
printf("\nLa matriz con intercambio de diagonal principal por la secundaria\n\n");
printf("\n");
e=10;
 for (i=0;i<=fila;i++)
 {
  
   for (n=0;n<=columna;n++)
   {
 
    if (i==n)
    {
         aux=matriz[i][e];
   matriz[i][e]=matriz[i][n];
   matriz[i][n]=aux;
  e--;
    }
   };



  };
  
 for (i=0;i<=10;i++)
 {
  printf("\n");
   for (n=0;n<=10;n++)
   {
        printf("[%d]",matriz[i][n]);
   };


  };
      getch();
      return 0;
}

gracias de ante mano
« Última modificación: 21 Noviembre 2014, 06:17 am por Jaua10 » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Matriz principal con secundaria
« Respuesta #3 en: 21 Noviembre 2014, 15:37 pm »

Lo primero que debes hacer es evitar el uso de la biblioteca conio de Borland, cambiar la definición de la función main a "int main(void) ..." o "int main() ...", mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|.

* Debes eliminar la sentencia:
Código
  1. matriz[1][1]=matriz[fila][columna];
Ya que es inutil y puede causar que el programa reviente si se indica una matriz de diez filas y columnas.

* Las llaves de cierre no requieren de un punto después de estas:
Código
  1. for (n=0; n<=10; n++){
  2.   printf("[%d]",matriz[i][n]);
  3. };
Ese punto y coma se procesa como una sentencia nula, esta de mas y hay que eliminarla. Y si el cuerpo del bucle es una sola sentencia no hay necesidad de paréntesis con lo cual el bucle anterior se reduce a:
Código
  1. for (n=0; n<=10; n++)
  2.   printf("[%d]",matriz[i][n]);

* En el ultimo bucle donde imprimes la matriz con las diagonales intercambiadas utilizas 10 como el limite de ambos bucles cuando deberías utilizar fila y columna.

* Por ultimo para intercambiar los valores de las diagonales solo necesitas de un bucle, de esta forma:
Código
  1. for (i = 0; i < fila; i++){
  2.   aux = matriz[i][i];
  3.   matriz[i][i] = matriz[i][columna - 1 - i];
  4.   matriz[i][columna - 1 - i] = aux;
  5. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Jaua10

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Matriz principal con secundaria
« Respuesta #4 en: 21 Noviembre 2014, 17:03 pm »

Código:
#include <stdio.h>
#include <conio.h>
main()
{
      int fila,columna,i,n,e,aux; 
      int matriz[10][10];         
      printf("Ingrese el dimension de fila: ");
      scanf("%d",&fila);
      printf("Ingrese el dimension de columna: ");
      scanf("%d",&columna);

      printf("\nMatriz de [%d]x[%d]\n",fila,columna);
      printf("\n");
      for(i=0;i<fila;i++){
                          for(n=0;n<columna;n++){
                                              printf("Ingrese el valor de posicion [%d][%d]: ",i+1,n+1);
                                              scanf("%d",&matriz[i][n]);                                             
                                              }
                          }
      printf("\nLa matriz original:\n\n");
      for(i=0;i<fila;i++){
                          for(n=0;n<columna;n++){
                                              printf("[%d]",matriz[i][n]);
                                                                                           
                                              }
                                              printf("\n");
                          }
printf("\nLa matriz con intercambio de diagonal principal por la secundaria\n\n");
printf("\n");
e=10;
 for (i=0;i<=fila;i++)
 {
 
   for (n=0;n<=columna;n++)
   {
 
    if (i==n)
    {
         aux=matriz[i][e];
   matriz[i][e]=matriz[i][n];
   matriz[i][n]=aux;
  e--;
    }
   }



  }
   
 for (i=0;i<=fila;i++)
 {
  printf("\n");
   for (n=0;n<=columna;n++)
   {
   for (i = 0; i < fila; i++){
   aux = matriz[i][i];
   matriz[i][i] = matriz[i][columna - 1 - i];
   matriz[i][columna - 1 - i] = aux;

    printf("[%d]",matriz[i][n]);
   }
   
   }


  }

No logro conseguir que se intercambien las diagonales, me sivio de mucho lo explicado antes, aunque sigo sin poder tener resultado no se que puedo tener malo
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Matriz principal con secundaria
« Respuesta #5 en: 21 Noviembre 2014, 20:40 pm »

Haz mezclado parte de tu código con el que te propuso rir3760.

A ver si con esto te funciona ( sobra la e=10 que no sé que pintaba en todo esto):

Código
  1. printf("\nLa matriz con intercambio de diagonal principal por la secundaria\n\n");
  2. printf("\n");
  3.  
  4. for (i = 0; i < fila; i++) {
  5.   aux = matriz[i][i];
  6.   matriz[i][i] = matriz[i][columna - 1 - i];
  7.   matriz[i][columna - 1 - i] = aux;
  8. }
  9.  
  10. for (i=0;i<fila;i++) {
  11.   for (n=0;n<columna;n++)
  12.    printf("[%d]",matriz[i][n]);
  13.   printf("\n");
  14. }

¡¡¡¡ Saluditos! ..... !!!!


En línea

Jaua10

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Matriz principal con secundaria
« Respuesta #6 en: 21 Noviembre 2014, 22:02 pm »

Muchas gracias leosansan la modificacion de codigo que hiciste funciono y le pude agregar otros detalles perfectamente sin tener error alguno.Feliz dia
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Diagonal secundaria de matriz.!
Scripting
cuazzo 6 31,794 Último mensaje 22 Junio 2010, 01:17 am
por cuazzo
Moverse por las paralelas a la diagonal secundaria de una matriz.
Programación C/C++
AlucardDracula 4 2,765 Último mensaje 17 Diciembre 2013, 22:34 pm
por AlucardDracula
Recorrido de matriz diagonal secundaria c++
Programación C/C++
SojatDotar 4 10,438 Último mensaje 21 Octubre 2015, 04:10 am
por SojatDotar
ayuda con la diagonal principal de una matriz para dejarla vacía
Programación C/C++
creiko 2 2,116 Último mensaje 1 Junio 2016, 20:00 pm
por geeke
ayuda diagonal principal y secundaria phyton 3
Scripting
papess 2 11,989 Último mensaje 13 Mayo 2019, 18:51 pm
por papess
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines