Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ivancea96

#3681
Programación C/C++ / Re: Copiar matrices en C
17 Diciembre 2013, 16:20 PM
void rellenarTabla(char **a, char **b, int filas, int columnas){
    for(int i=0;i<filas;i++)
        for(int j=0;j<columnas;j++)
            b[i][j] = a[i][j];
}


Qué me dices? Quizás no sea lo que buscas. Si le falta algo, dilo.
#3682
Programación C/C++ / Re: Copiar matrices en C
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
#3683
Programación C/C++ / Re: Copiar matrices en C
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.
#3684
Código (cpp) [Seleccionar]
void (*f[])() = {go_arriba, go_izquierda, go_derecha, go_abajo};

Para poder ordenar, metí todas las funciones en un array de funciones.
Cuando se pone algo como:
Código (cpp) [Seleccionar]
char (*ptrchar) (int);
ptrchar = prueba;
char prueba(int a){ //pasar funcion como parametro
    return (char)a;


ptrchar es un puntero a una función char. ¿Qué variables recibe sa función? "char (*ptrchar) (int);". En vez de int, podríamos poner (char, int[]), por ejemplo. En fin.

Es la primera vez que uso en la práctica lo de puntero a funciones, así que no se si irá bien del todo jaja. Pero puedes echarle un vistazo :o
#3685
Por cierto, si quieres simplificarlo todo, como tienes un vector<char>, podrías cambiarlo a string.
Bueno, lo digo, porque no soy de suar vectores xd
#3686
A parte de todas las funciones y operadores que tiene una string, a grandes rasgos, una string es un array de char. (char[]).
#3687
La String está definida en la librería estandar si no me equivoco.

Las funciones del tipo "strcat()" y cosas así, sí necesitan la <string>. (strcat es un ejemplo, pero bueno, no se si ese precisamente lo es jaja)
#3688
Código (cpp) [Seleccionar]

int a[4] = {arriba, izquierda, derecha, abajo};
void (*f[])() = {go_arriba, go_izquierda, go_derecha, go_abajo};
if(a[0] + a[1] + a[2] + a[3] > 0){
int primos = {2, 3, 5, 7};
int mayor=0;
int temp=1;
int cont=1;
for(int i=0;i<4;i++)
   if(a[i] > mayor){mayor=a[i];temp=primos[i];} //Miramos cual es el mayor
for(int i=0; i<4; i++)
   if(temp%primos[i]!=0 && a[i]==mayor){temp*=primos[i]; ++cont;} //Miramos cuales son iguales al mayor
switch(cont){
   case 1: for(int i=0;i<4;i++) if(temp%primos[i] == 0){(*f[i])();break;}break;
   case 2: //Aqui sería ver cuales son los elegidos, y elegir al azar cual usar.
   case 3: //idem
}
}


En fin, no se si tengo algún fallo por ahí. De ser así, y si te gusta el algoritmo, puedes corregirlo. Te dejo para, si lo usases, lo continues tú jaja

EDITO: Los 4 for eran una posibilidad, pero preferí esa, que me pareció más rápida.
#3689
Bueno, y una recomendación personal: Ya que es C++, aprobecha y usa las strings xd
No te obligo jaja, pero puedes evitar fallos.
#3690
Perdona, que diga algo: Todos esos "if" los podrías cambiar por 1 único if dentro de un bucle de 4 "for". No se que algoritmo usaste, pero bueno, evitar hacer ese tipo de "copy&paste" es mejor. especialmente para la vista.