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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


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

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Copiar matrices en C
« en: 17 Diciembre 2013, 15:06 pm »

Buenas tardes.

Estoy intentando hacer un programa (aún de principiante, ya que estoy aprendiendo) que me imprima ciertas matrices con valor de 0 y 1 a partir de una secuencia de estos números que le pasas desde el terminal, en un fichero de texto.
El problema me surge a la hora de copiar una matriz bidimensional a otra. La cosa es que no busco la función de strcpy(), ya que no quiero que ambas matrices queden iguales, sino que la primera matriz se coloque al principio de la segunda, pero que después pueda meter en la segunda matriz(debajo de los valores de la primera) más matrices.
Busco algo equivalente a (referido al código de más abajo):
strcpy(tabla[(*filasVariable)][(*columnasVariable)],matriz1[f][c]);
Es decir, que pueda copiar elemento a elemento de una matriz a otra.

La función en la que me aparece el problema es la siguiente:

Código:
void rellenarTabla(char tabla[MAX_TABLA][MAX_TABLA], int contador, int *filasVariable, int *columnasVariable, const char codigo[], char matriz0[FILA][COLUMNA], char matriz1[FILA][COLUMNA], int longitudCad){
int f;
int c;
int i; /*Variable para recorrer 'codigo[i]'*/

f=0;
while((*filasVariable)<(FILA*contador)){
for(i=0;i<longitudCad;i++){
if(codigo[i]=='1'){
c=0;
while((*columnasVariable)<COLUMNA){
tabla[(*filasVariable)][(*columnasVariable)]=matriz1[f][c];
(*columnasVariable)++;
c++;
} /*Del for que recorre las columnas de la matriz de '0'*/
} /*Del if*/
if(codigo[i]=='0'){
c=0;
while((*columnasVariable)<COLUMNA){
tabla[(*filasVariable)][(*columnasVariable)]=matriz0[f][c];
(*columnasVariable)++;
c++;
} /*Del for que recorre las columnas de la matriz de '1'*/
} /*Del segundo if*/
} /*Del for que recorre los caracteres de la secuencia introducida*/
(*filasVariable)++;
f++;
} /*Del for que recorre las filas*/

}

Muchas gracias a cualquiera que ayude! Admito cualquier aportación :)


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Copiar matrices en C
« Respuesta #1 en: 17 Diciembre 2013, 15:22 pm »

Explica el código. Además de la función, pon el código con un "main" donde te falle. Así sin más, no tengo ni idea de que hace cada variable.

Si tu idea es copiar una matriz a otra, a la función serviría con que le mandases las dos matrices asecas, y no todas esas variables que se le envían. Incluso, si quieres, mandarle también el número de filas y columnas.

En definitiva, revisa el código. Son demasiadas variables. Si no das arreglado, please, envía el código completo, así para saber donde falla, y testearlo con mayor celeridad.


En línea

chrisuxx

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Copiar matrices en C
« Respuesta #2 en: 17 Diciembre 2013, 16:03 pm »

El código completo sería el siguiente (no quería ponerlo porque resultaba muy largo):

Código:
No disponible.


En el terminal el programa recibiría 2 parámetros (a parte del codificador), en el primero la secuencia de 0 y 1 (correspondientes a las matrices con valor 0 y 1) y en el segundo una letra de la A a la Z (menos la Ñ), donde cada una tiene una matriz de 0 y 1 diferente.
El programa debería crear un archivo .pbm donde se escriban todas esas matrices dependiendo de los parámetros dados, creando algo así al indicar 01100 BMAF



Luego como alternativa tengo este otro código, pero me da los siguientes errores:
Unused declaration of funtion 'numeroFactorial'
Unused declaration of function 'numeroPotencia'
aviso: 'main' generalmente es una función que no es static [-Wmain]
y en el último corchete de cierre de todos (el de la función escribirPBM):
Multiple markers at this line
   - Syntax error
   - expected declaration or statement at end of input

Lo que me parece raro es que ahora me aparezcan esos errores cuando en el anterior código no.

Código:
No disponible.

¡Muchas gracias por todo!
« Última modificación: 17 Diciembre 2013, 16:38 pm por chrisuxx » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Copiar matrices en C
« Respuesta #3 en: 17 Diciembre 2013, 16:15 pm »

Okay. Viendo que el código completo no nos interesa, veré para mejorar ese copiar matriz.

Haré para copiar la matriz asecas. El problema viene cuando la matriz donde se copia, es más pequeña. Eso ya te lo dejo a ti jaja
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Copiar matrices en C
« Respuesta #4 en: 17 Diciembre 2013, 16:20 pm »

Código
  1. void rellenarTabla(char **a, char **b, int filas, int columnas){
  2.    for(int i=0;i<filas;i++)
  3.        for(int j=0;j<columnas;j++)
  4.            b[i][j] = a[i][j];
  5. }

Qué me dices? Quizás no sea lo que buscas. Si le falta algo, dilo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
matrices en C#
Programación General
volterra 4 10,214 Último mensaje 18 Mayo 2010, 06:26 am
por Og.
matrices
Programación C/C++
aral90 2 2,270 Último mensaje 9 Diciembre 2011, 20:13 pm
por aral90
matrices
.NET (C#, VB.NET, ASP)
legomanticore 4 3,590 Último mensaje 14 Mayo 2012, 03:02 am
por $Edu$
matrices en c
Programación C/C++
ALONSOQ 9 4,809 Último mensaje 27 Junio 2012, 05:15 am
por twins
matrices
Programación C/C++
lorderick 3 3,088 Último mensaje 8 Septiembre 2012, 05:12 am
por CSQCasimiro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines