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

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 ... 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 [369] 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 ... 401
3681  Programación / Programación C/C++ / Re: Copiar matrices en C 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.
3682  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 17 Diciembre 2013, 15:14 pm
Código
  1. 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
  1. char (*ptrchar) (int);
  2. ptrchar = prueba;
  3. char prueba(int a){ //pasar funcion como parametro
  4.    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
3683  Programación / Programación C/C++ / Re: Duda N00b de como separar una serie de casos en: 16 Diciembre 2013, 22:14 pm
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
3684  Programación / Programación C/C++ / Re: Duda N00b de como separar una serie de casos en: 16 Diciembre 2013, 21:32 pm
A parte de todas las funciones y operadores que tiene una string, a grandes rasgos, una string es un array de char. (char[]).
3685  Programación / Programación C/C++ / Re: Duda N00b de como separar una serie de casos en: 16 Diciembre 2013, 21:08 pm
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)
3686  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 16 Diciembre 2013, 20:22 pm
Código
  1. int a[4] = {arriba, izquierda, derecha, abajo};
  2. void (*f[])() = {go_arriba, go_izquierda, go_derecha, go_abajo};
  3. if(a[0] + a[1] + a[2] + a[3] > 0){
  4. int primos = {2, 3, 5, 7};
  5. int mayor=0;
  6. int temp=1;
  7. int cont=1;
  8. for(int i=0;i<4;i++)
  9.    if(a[i] > mayor){mayor=a[i];temp=primos[i];} //Miramos cual es el mayor
  10. for(int i=0; i<4; i++)
  11.    if(temp%primos[i]!=0 && a[i]==mayor){temp*=primos[i]; ++cont;} //Miramos cuales son iguales al mayor
  12. switch(cont){
  13.    case 1: for(int i=0;i<4;i++) if(temp%primos[i] == 0){(*f[i])();break;}break;
  14.    case 2: //Aqui sería ver cuales son los elegidos, y elegir al azar cual usar.
  15.    case 3: //idem
  16. }
  17. }

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.
3687  Programación / Programación C/C++ / Re: Duda N00b de como separar una serie de casos en: 16 Diciembre 2013, 19:50 pm
Bueno, y una recomendación personal: Ya que es C++, aprobecha y usa las strings xd
No te obligo jaja, pero puedes evitar fallos.
3688  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 16 Diciembre 2013, 19:04 pm
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.
3689  Programación / Programación C/C++ / Re: Duda N00b de como separar una serie de casos en: 16 Diciembre 2013, 19:00 pm
Aquí corregí el código:

Código
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX = 'z' - 'a' + 1;
  7.  
  8. int cript(const vector<char>& Dic, char c) {
  9.  
  10.    for (int i = 0; i < MAX; ++i)
  11.        if (c == Dic[i]) return i;
  12.  
  13.    return 0;
  14.  
  15. }
  16.  
  17. int main() {
  18.  
  19.    vector<char> Dic(MAX);
  20.  
  21.    while (true) {
  22.        cout << "Ponga el diccionario:" << endl << " - ";
  23.        for (int i = 0; i < MAX; ++i) cin >> Dic[i];
  24.        int cas;
  25.        cout << "Ponga numero de lineas:" << endl << " - ";
  26.        cin >> cas;
  27.  
  28.        for (int i = 0; i < cas; ++i) {
  29.  
  30.            string c;
  31.  
  32.            cin >> c;
  33.                for(int j=0; j<c.length(); j++)
  34.                    if (c[j] == '_') cout << " ";
  35.                    else {
  36.                        int k = cript(Dic, c[j]);
  37.                        cout << char(k+ 'a');
  38.                }
  39.  
  40.            cout << endl;
  41.        }
  42.        cout << endl;
  43.    }
  44. }

Puse un par de couts explicando lo que pid een cada caso. Ahora te explico:

Tenías un "while(cin << c)". Eso hacía que no saliera del ciclo, y continuaba pidiendo caracteres.
Te convertí 'c' e un string, y lo cambié un poco.

Tenías 1 fallo, que erradicaba en un uso obligado de otro:

Tenías: "for(int i=1;i<MAX;i++) ..."
Por ese motivo, tenias que poner "while(cin >> c[0])" Ese '0' se evita ponerlo, si le I del for la inicializas en 0. Ademásde cambiar eso, podrías quitar el while, o dejarlo como lo puse yo, para que pida infinitamente. (O lo que tu quieras)

En fin, creo que eso es todo. Suerte.
3690  Programación / Programación C/C++ / Re: Duda N00b de como separar una serie de casos en: 15 Diciembre 2013, 21:39 pm
En la imagen, no me explicas nada. Son 1 o 2 entradas diferentes?

Has probado a poner cout << endl << endl;? Quizás es lo que buscas.



PD:Se dice linea, no linia. Por favor, revisa lo que escribiste antes de postear, tienes muchas faltas. Usa signos de puntuación por favor.
Páginas: 1 ... 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 [369] 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 ... 401
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines