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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


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

Desconectado Desconectado

Mensajes: 38


Ver Perfil
ejercicio matrices c
« en: 9 Noviembre 2012, 10:58 am »

como se haría para intercambiar filas? no entiendo..

Citar
Generar una matriz de 10x10 numérica entera , a continuación pedir dos números de fila, que se deben filtrar entre 1 y 10  e intercambiar ambas filas. Presentar las matrices antes y después del cambio.


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: ejercicio matrices c
« Respuesta #1 en: 9 Noviembre 2012, 12:16 pm »

como se haría para intercambiar filas? no entiendo..
Citar
Por ejemplo, si quisieras cambiar la primera fila por la última sería:
Código
  1. puts ("cambio fila primera ultima\n");
  2.    for (j=0;j<TAM;j++)
  3.            {
  4.                temp1=b[0][j];
  5.                temp2=b[TAM-1][j];
  6.                b[TAM-1][j]= temp1;
  7.                b[0][j]= temp2;
  8.            }
Citar
Todo es jugar con los subídices cero y TAM-1; para cabiar la 3ª fila por la 5ª serían esos valores 2 y 4 en lugar de cero y TAM-1.
Saludos!.


En línea

howaboutno

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: ejercicio matrices c
« Respuesta #2 en: 9 Noviembre 2012, 15:13 pm »

Código
  1. puts ("cambio fila primera ultima\n");
  2.    for (j=0;j<TAM;j++)
  3.            {
  4.                temp1=b[0][j];
  5.                temp2=b[TAM-1][j];
  6.                b[TAM-1][j]= temp1;
  7.                b[0][j]= temp2;
  8.            }
Saludos!.

sigo sin entenderlo...
En línea

cypascal

Desconectado Desconectado

Mensajes: 42


Ver Perfil WWW
Re: ejercicio matrices c
« Respuesta #3 en: 9 Noviembre 2012, 15:54 pm »

Te dejo tambien aqui el codigo, espero que te sirva:

Código:
#include <stdio.h>

int main(void)
{
int matriz[11][11],fil1,fil2,c1,c2,aux;

for(c1=1;c1<=10;c1++) for(c2=1;c2<=10;c2++){
printf("Termino (%d,%d): ",c1,c2); scanf("%d",&matriz[c1][c2]);
}

printf("\n\nMatriz introducida:\n\n");
for(c1=1;c1<=10;c1++){ for(c2=1;c2<=10;c2++){
printf("%6d",matriz[c1][c2]);
}printf("\n");}

printf("Introduce primera fila:"); scanf("%d",&fil1);
printf("Introduce segunda fila:"); scanf("%d",&fil2);

for(c1=1;c1<=10;c1++)
{
aux=matriz[fil1][c1];
matriz[fil1][c1]=matriz[fil2][c1];
matriz[fil2][c1]=aux;
}

printf("\n\nMatriz cambiada:\n\n");
for(c1=1;c1<=10;c1++){ for(c2=1;c2<=10;c2++){
printf("6%d",matriz[c1][c2]);
}printf("\n");}

return(0);
}

Salu10
En línea

Problemas interesantes de programación en C/C++ y Pascal en:
BLOG C/C++


WWW.CYPASCAL.BLOGSPOT.COM.ES
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: ejercicio matrices c
« Respuesta #4 en: 9 Noviembre 2012, 21:04 pm »

sigo sin entenderlo...
Citar
Lo que hago es crear una nueva matriz con el intercambio de las filas, así no pierdo la matriz inicial. Eso es porque presupongo que se va a "hacer" otras cosas con la matriz inicial, como cambiar diagonales, obtener la simétrica sumar o restar, etc. Por ejemplo:
Código
  1. #include <stdio.h>
  2. #define TAM 4
  3. #include <time.h>
  4. int i,j;
  5. int main()
  6. {
  7.    int fila1,fila2,temp1,temp2,a[TAM][TAM],b[TAM][TAM],c[TAM][TAM],d[TAM][TAM],e[TAM][TAM];
  8.    srand(time(0));
  9.    generar_matriz (a);
  10.    imprimir (a);
  11. /**********  cambio fila primera ultima  **********/
  12.    copia_matriz (a,b);
  13.    puts ("cambio fila primera ultima\n");
  14.    for (j=0;j<TAM;j++)
  15.            {
  16.                temp1=b[0][j];
  17.                temp2=b[TAM-1][j];
  18.                b[TAM-1][j]= temp1;
  19.                b[0][j]= temp2;
  20.            }
  21.    imprimir (b);
  22. /****************  cambio filas ***************/
  23.    copia_matriz (a,e);
  24.    puts ("cambio filas\n");
  25.    printf ("Numero de fila1: ");
  26.    scanf ("%d",&fila1);
  27.    printf ("Numero de fila2: ");
  28.    scanf ("%d",&fila2);
  29.    puts ("\n");
  30.    for (j=0;j<TAM;j++)
  31.            {
  32.                temp1=e[fila1-1][j];
  33.                temp2=e[fila2-1][j];
  34.                e[fila2-1][j]= temp1;
  35.                e[fila1-1][j]= temp2;
  36.            }
  37.    imprimir (e);
  38. /*************  cambio diagonales   *****************/
  39.    copia_matriz (a,c);
  40.    puts ("cambio diagonales\n");
  41.    for (i=0;i<TAM;i++)
  42.        {
  43.            temp1=c[i][i];
  44.            temp2=c[i][TAM-1-i];
  45.            c[i][TAM-1-i]= temp1;
  46.            c[i][i]= temp2;
  47.        }
  48.    imprimir (c);
  49.  
  50. /*************  matriz simetrica   *****************/
  51.    copia_matriz (a,d);
  52.    puts ("matriz simetrica\n");
  53.    for (i=0;i<TAM;i++)
  54.        for (j=0;j<TAM && j<i;j++)
  55.            {
  56.                temp1=d[i][j];
  57.                temp2=d[j][i];
  58.                d[j][i]= temp1;
  59.                d[i][j]= temp2;
  60.            }
  61.      imprimir (d);
  62.      return 0;
  63. }
  64. /**************************************************/
  65. int generar_matriz (int a[][TAM])
  66.    {
  67.        for (i=0;i<TAM;i++)
  68.       {
  69.          for (j=0;j<TAM;j++)
  70.              {
  71.                 /* printf("a[%d][%d]= ",i,j);
  72.                 scanf("%d",&a[i][j]);*/
  73.                a[i][j]=rand() % 10 ;
  74.              }
  75.       }
  76.    }
  77.  
  78. /**************************************************/
  79.  
  80. int imprimir (int a[][TAM])
  81. {
  82.    int i,j;
  83.    for (i=0;i<TAM;i++)
  84.        {
  85.            for (j=0;j<TAM;j++)
  86.                {
  87.                     printf("%d  ",a[i][j]);
  88.                }puts("\n");
  89.        }puts("\n");
  90. }
  91. /**************************************************/
  92. int   copia_matriz (int matriz1[][TAM],int matriz2[][TAM])
  93. {
  94.    int i,j;
  95.    for (i=0;i<TAM;i++)
  96.        {
  97.            for (j=0;j<TAM;j++)
  98.                {
  99.                     matriz2[i][j]=matriz1[i][j];
  100.                }
  101.        }
  102. }
  103. /**************************************************/
  104.  
Citar
Si sólo quieres cambiar las filas y punto el código de cypascal te vale.
Saludos!.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda.Ejercicio de matrices! en C
Programación C/C++
sofi1 3 2,962 Último mensaje 22 Agosto 2011, 00:13 am
por sofi1
Ejercicio con matrices resuelto en un 90% (necesito ayuda)
Programación C/C++
Beaustyle 1 3,252 Último mensaje 8 Junio 2012, 07:40 am
por durasno
ejercicio con matrices o funciones en visual c++
Programación C/C++
ZUVAI 1 2,278 Último mensaje 7 Septiembre 2013, 08:54 am
por Eternal Idol
Ayuda con ejercicio de matrices transpuestas y simetricas
Programación C/C++
dato000 5 4,404 Último mensaje 18 Diciembre 2013, 18:42 pm
por dato000
duda con ejercicio de matrices
Programación C/C++
andoporto 1 2,018 Último mensaje 6 Febrero 2015, 23:00 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines