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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  RETOS C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 Ir Abajo Respuesta Imprimir
Autor Tema: RETOS C++  (Leído 51,008 veces)
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: RETOS C++
« Respuesta #110 en: 1 Octubre 2012, 21:05 pm »

Código
  1. #include <iostream>
  2.    using namespace std;
  3.  
  4. int main ()
  5. {
  6.    int a,b,c,d;
  7.    cin >> a >> b >> c >> d;
  8.    if ((a= a>b ? a:b)>(c= c>d ? c:d))
  9.        cout << a << endl;
  10.    else
  11.        cout << c << endl;
  12. }
  13.  

esta forma de estructurar el if nunca lo havia visto
y a decir verdad solo entiendo la mitad.

Si me puedes explicar el ? y el a:b. que és lo que no entendi.





En línea

overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: RETOS C++
« Respuesta #111 en: 1 Octubre 2012, 21:08 pm »

esta forma de estructurar el if nunca lo havia visto
y a decir verdad solo entiendo la mitad.

Si me puedes explicar el ? y el a:b. que és lo que no entendi.





Operadores ternarios busca documentación sobre ellos son bastante útiles.

EI: juntando mensajes.

RETO 12:

Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. int numeroSudoku[100];
  5. bool compruebaVertical();
  6. bool compruebaCuadros();
  7. bool compruebaHorizontal();
  8.  
  9. int main(int argc,char* argv)
  10. {
  11.  
  12.    ifstream archivo("sudoku.txt");
  13.    for(int x=0;x<=80 && archivo.eof() == false;x++)
  14.    {
  15.        archivo >> numeroSudoku[x];
  16.    }
  17.    if(compruebaVertical()  && compruebaHorizontal()  && compruebaHorizontal())
  18.    {
  19.        cout << "Sudoku Valido" << endl;
  20.    }
  21.    else
  22.    {
  23.        cout << "Sudoku Invalido" << endl;
  24.    }
  25.    return 0;
  26. }
  27.  
  28. bool compruebaVertical()
  29. {
  30.    if(numeroSudoku[0] + numeroSudoku[9] + numeroSudoku[18] + numeroSudoku[27] + numeroSudoku[36] + numeroSudoku[45] + numeroSudoku[54] + numeroSudoku[63] + numeroSudoku[72] == 45 )
  31.    {
  32.        if(numeroSudoku[1] + numeroSudoku[10] + numeroSudoku[19] + numeroSudoku[28] + numeroSudoku[37] + numeroSudoku[46] + numeroSudoku[55] + numeroSudoku[64] + numeroSudoku[73] == 45 )
  33.        {
  34.            if(numeroSudoku[2] + numeroSudoku[11] + numeroSudoku[20] + numeroSudoku[29] + numeroSudoku[38] + numeroSudoku[47] + numeroSudoku[56] + numeroSudoku[65] + numeroSudoku[74] == 45 )
  35.            {
  36.                if(numeroSudoku[3] + numeroSudoku[12] + numeroSudoku[21] + numeroSudoku[30] + numeroSudoku[39] + numeroSudoku[48] + numeroSudoku[57] + numeroSudoku[66] + numeroSudoku[75] == 45 )
  37.                {
  38.                    if(numeroSudoku[4] + numeroSudoku[13] + numeroSudoku[22] + numeroSudoku[31] + numeroSudoku[40] + numeroSudoku[49] + numeroSudoku[58] + numeroSudoku[67] + numeroSudoku[76] == 45 )
  39.                    {
  40.                        if(numeroSudoku[5] + numeroSudoku[14] + numeroSudoku[23] + numeroSudoku[32] + numeroSudoku[41] + numeroSudoku[50] + numeroSudoku[59] + numeroSudoku[68] + numeroSudoku[77] == 45 )
  41.                        {
  42.                            if(numeroSudoku[6] + numeroSudoku[15] + numeroSudoku[24] + numeroSudoku[33] + numeroSudoku[42] + numeroSudoku[51] + numeroSudoku[60] + numeroSudoku[69] + numeroSudoku[78] == 45 )
  43.                            {
  44.                                if(numeroSudoku[7] + numeroSudoku[16] + numeroSudoku[25] + numeroSudoku[34] + numeroSudoku[43] + numeroSudoku[52] + numeroSudoku[61] + numeroSudoku[70] + numeroSudoku[79] == 45 )
  45.                                {
  46.                                    if(numeroSudoku[8] + numeroSudoku[17] + numeroSudoku[26] + numeroSudoku[35] + numeroSudoku[44] + numeroSudoku[53] + numeroSudoku[62] + numeroSudoku[71] + numeroSudoku[80] == 45 )
  47.                                    {
  48.                                        return true;
  49.                                    }
  50.                                }
  51.                            }
  52.                        }
  53.                    }
  54.                }
  55.            }
  56.        }
  57.    }
  58.    else return false;
  59. }
  60.  
  61. bool compruebaHorizontal()
  62. {
  63.    bool sudokuCorrecto = false;
  64.    if(numeroSudoku[0] + numeroSudoku[1] + numeroSudoku[2] + numeroSudoku[3] + numeroSudoku[4] + numeroSudoku[5] + numeroSudoku[6] + numeroSudoku[7] + numeroSudoku[8] == 45 )
  65.    {
  66.        if(numeroSudoku[9] + numeroSudoku[10] + numeroSudoku[11] + numeroSudoku[12] + numeroSudoku[13] + numeroSudoku[14] + numeroSudoku[15] + numeroSudoku[16] + numeroSudoku[17] == 45 )
  67.        {
  68.            if(numeroSudoku[18] + numeroSudoku[19] + numeroSudoku[20] + numeroSudoku[21] + numeroSudoku[22] + numeroSudoku[23] + numeroSudoku[24] + numeroSudoku[25] + numeroSudoku[26] == 45 )
  69.            {
  70.                if(numeroSudoku[27] + numeroSudoku[28] + numeroSudoku[29] + numeroSudoku[30] + numeroSudoku[31] + numeroSudoku[32] + numeroSudoku[33] + numeroSudoku[34] + numeroSudoku[35] == 45 )
  71.                {
  72.                    if(numeroSudoku[36] + numeroSudoku[37] + numeroSudoku[38] + numeroSudoku[39] + numeroSudoku[40] + numeroSudoku[41] + numeroSudoku[42] + numeroSudoku[43] + numeroSudoku[44] == 45 )
  73.                    {
  74.                        if(numeroSudoku[45] + numeroSudoku[46] + numeroSudoku[47] + numeroSudoku[48] + numeroSudoku[49] + numeroSudoku[50] + numeroSudoku[51] + numeroSudoku[52] + numeroSudoku[53] == 45 )
  75.                        {
  76.                            if(numeroSudoku[54] + numeroSudoku[55] + numeroSudoku[56] + numeroSudoku[57] + numeroSudoku[58] + numeroSudoku[59] + numeroSudoku[60] + numeroSudoku[61] + numeroSudoku[62] == 45 )
  77.                            {
  78.                                if(numeroSudoku[63] + numeroSudoku[64] + numeroSudoku[65] + numeroSudoku[66] + numeroSudoku[67] + numeroSudoku[68] + numeroSudoku[69] + numeroSudoku[70] + numeroSudoku[71] == 45 )
  79.                                {
  80.                                    if(numeroSudoku[72] + numeroSudoku[73] + numeroSudoku[74] + numeroSudoku[75] + numeroSudoku[76] + numeroSudoku[77] + numeroSudoku[78] + numeroSudoku[79] + numeroSudoku[80] == 45 )
  81.                                    {
  82.                                        return true;
  83.                                    }
  84.                                }
  85.                            }
  86.                        }
  87.                    }
  88.                }
  89.            }
  90.        }
  91.    }
  92.    else return false;
  93. }
  94.  
  95. bool compruebaCuadros()
  96. {
  97.    bool sudokuCorrecto = false;
  98.    if(numeroSudoku[0] + numeroSudoku[1] + numeroSudoku[2] + numeroSudoku[9] + numeroSudoku[10] + numeroSudoku[11] + numeroSudoku[18] + numeroSudoku[19] + numeroSudoku[20] == 45 )
  99.    {
  100.        if(numeroSudoku[3] + numeroSudoku[4] + numeroSudoku[5] + numeroSudoku[12] + numeroSudoku[13] + numeroSudoku[14] + numeroSudoku[21] + numeroSudoku[22] + numeroSudoku[23] == 45 )
  101.        {
  102.            if(numeroSudoku[6] + numeroSudoku[7] + numeroSudoku[8] + numeroSudoku[15] + numeroSudoku[16] + numeroSudoku[17] + numeroSudoku[24] + numeroSudoku[25] + numeroSudoku[26] == 45 )
  103.            {
  104.                if(numeroSudoku[27] + numeroSudoku[28] + numeroSudoku[29] + numeroSudoku[36] + numeroSudoku[37] + numeroSudoku[38] + numeroSudoku[45] + numeroSudoku[46] + numeroSudoku[47] == 45 )
  105.                {
  106.                    if(numeroSudoku[30] + numeroSudoku[31] + numeroSudoku[32] + numeroSudoku[39] + numeroSudoku[40] + numeroSudoku[41] + numeroSudoku[49] + numeroSudoku[50] + numeroSudoku[51] == 45 )
  107.                    {
  108.                        if(numeroSudoku[33] + numeroSudoku[34] + numeroSudoku[35] + numeroSudoku[42] + numeroSudoku[43] + numeroSudoku[44] + numeroSudoku[51] + numeroSudoku[52] + numeroSudoku[53] == 45 )
  109.                        {
  110.                            if(numeroSudoku[54] + numeroSudoku[55] + numeroSudoku[56] + numeroSudoku[63] + numeroSudoku[64] + numeroSudoku[65] + numeroSudoku[72] + numeroSudoku[73] + numeroSudoku[74] == 45 )
  111.                            {
  112.                                if(numeroSudoku[57] + numeroSudoku[58] + numeroSudoku[59] + numeroSudoku[66] + numeroSudoku[67] + numeroSudoku[68] + numeroSudoku[75] + numeroSudoku[76] + numeroSudoku[77] == 45 )
  113.                                {
  114.                                    if(numeroSudoku[60] + numeroSudoku[61] + numeroSudoku[62] + numeroSudoku[69] + numeroSudoku[70] + numeroSudoku[71] + numeroSudoku[78] + numeroSudoku[79] + numeroSudoku[80] == 45 )
  115.                                    {
  116.                                        return true;
  117.                                    }
  118.                                }
  119.                            }
  120.                        }
  121.                    }
  122.                }
  123.            }
  124.        }
  125.    }
  126.    else return false;
  127. }
  128.  

El código no está para nada optimizado (puede ocupar menos de la mitad de lineas usando arrays multidimensionales),lo he hecho rápido antes de ir a acostarme :). El usuario introduce los valores por lineas en un archivo de texto, de izquierda a derecha del sudoku es decir siguiendo esta imagen:

http://i.msdn.microsoft.com/dynimg/IC37479.gif

Una parte del archivo de texto quedaría así:

Código:
6
3
2
7
8
1
9
4
5
...

Precisamente con el sudoku de ese gif he hecho la prueba del programa y funciona



Cuando tenga tiempo lo optimizaré, de momento 35 puntos más, esto engancha que te cagas  :xD


« Última modificación: 2 Octubre 2012, 14:20 pm por Eternal Idol 7D » En línea

[/url]
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: RETOS C++
« Respuesta #112 en: 2 Octubre 2012, 04:44 am »

No lo hago por los puntos, sino porque no tengo nada más que hacer XDD

3- Un programa que diga el numero mas grande. El usuario ha de insertar 4 numeros separados por un espacio.

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.    int a[4];
  8.    int mayor=0;
  9.    cout << "digite los números, con cada espacio se registra un numero nuevo: ";
  10.    for(int i=0; i<4; i++)
  11.        cin >> a[i];
  12.  
  13.    // BARRIDO
  14.    for(int i=0; i<4; i++){
  15.        if(a[i] > mayor){
  16.            mayor = a[i];
  17.        }
  18.    }
  19.  
  20.    cout << "El mayor es: " << mayor << endl;
  21.    cin.get();
  22.    return 0;
  23. }
  24.  
En línea


leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: RETOS C++
« Respuesta #113 en: 2 Octubre 2012, 14:46 pm »

Tienes el problema que si introduzco cuatro números negativos el mayor es, como no, el cero ... que no forma parte de los cuatro números. Tendrías que usar la libreria limits y asignarle a menorel valor de entero que es int_MIN o algo así.
Pero insisto en algo que postee anteriormente, no se está haciendo lo que dice textualmente el enunciado:
3- Un programa que diga el numero mas grande. El usuario ha de insertar 4 numeros separados por un espacio.
Este código sí hace lo que se pide:
Código
  1. #include <iostream>
  2. #include <cstdio>
  3. using namespace std;
  4. main()
  5. {
  6.    int a,b,c,d,mayor;
  7.    char ch,cad[100]/*= "17 32 15 27"*/;
  8.    cout <<"Introduzca cuatro numeros separados por un espacio:"<< endl;
  9.    gets (cad);
  10.    sscanf(cad, "%d%c%d%c%d%c%d",&a, &ch ,&b,&ch, &c,&ch, &d  );
  11.    if ((a= a>b ? a:b)>(c= c>d ? c:d))
  12.        cout << a << endl;
  13.    else
  14.        cout << "mayor = " << c << endl;
  15.    return 0;
  16. }
En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: RETOS C++
« Respuesta #114 en: 2 Octubre 2012, 15:11 pm »

ya actualice los puntos,si se les ocurre algo para los retos mejor :)
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: RETOS C++
« Respuesta #115 en: 2 Octubre 2012, 18:33 pm »

12- Un programa que haga diversos rombos de 2 * n -1 lineas como en el siguiente ejemplo  

Entrada: 4
SAlida:  
    *
  ***
 *****
*******
 *****
  ***
   *

25 puntos
Código
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int n,fila,col;
  6. cout << "tamanyo de la piramide: "<<endl;
  7. cin >> n;
  8.    for(fila=1;fila<=n;fila++)
  9.    {
  10.        for(col=1;col<=n-fila;col++)
  11.            cout<<" ";
  12.        for(col=1;col<=2*fila-1;col++)
  13.            cout<<"*";
  14.    cout<<endl;
  15.            }
  16. /* Escritura de la parte inferior */
  17.    for(fila=n-1;fila>=1;fila--)
  18.    {
  19.        for(col=1;col<=n-fila;col++)
  20.            cout<<" ";
  21.        for(col=1;col<=2*fila-1;col++)
  22.            cout<<"*";
  23.    cout<<endl;
  24.    }
  25. }

__

EI: juntando mensajes.

1-Un programa que cuente los caracteres que tiene un texto previamente introducido por el usuario (parece más fácil de lo que es)

ejemplo de entrada: "ho la" ejemplo salida:el texto tiene 5 caracteres

1 punto
Incluyendo espacios en blanco:
Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. using namespace std;
  4. main()
  5. {
  6.    int i;
  7.    char cadena [200];
  8.    gets (cadena);
  9.    for (i=0;cadena [i]!='\0';i++) ;
  10.    cout << "El texto tiene " << i << " caracteres." << endl;
  11.    return 0;
  12. }
« Última modificación: 2 Octubre 2012, 19:30 pm por Eternal Idol 7D » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: RETOS C++
« Respuesta #116 en: 2 Octubre 2012, 19:31 pm »

Por favor no escriban dos (o mas) mensajes consecutivos.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: RETOS C++
« Respuesta #117 en: 3 Octubre 2012, 15:05 pm »

SUDOKU (No se el numero de reto...)

Ya esta.

Código
  1. /*
  2.  * Linea de comandos: Nombre programa fichero
  3.  *
  4.  * El fichero debe tener el siguiente formato:
  5.  *  - 9 filas con 9 numeros separados por espacios
  6.  *  - Los numeros que vengan dados en el sudoku se escribiran en la posicion que corresponde
  7.  *  - Las casillas vacias del sudoku se indicaran con ceros
  8.  *  - Todas las filas deben acabar en un salto de linea
  9.  *  - Cuanquier linea que siga a las 9 primeras sera ignorada.
  10.  *
  11.  *
  12.  * Salida: Muestra como mucho 2 soluciones (las suficientes para que el contenido del fichero no sea un sudoku correcto)
  13.  * y sino indica que no hay solucion.
  14.  *
  15.  */
  16.  
  17.  
  18. #include <iostream>
  19. #include <cstdio>
  20. #include <cstring>
  21.  
  22. using namespace std;
  23.  
  24. class Sudoku
  25. {
  26.    public:
  27.        Sudoku();
  28.  
  29.        bool cargar(char *nombrefichero);
  30.        bool solucionar();
  31.        bool solucion_unica();
  32.        inline bool esta_solucionado(){return solucionado;};
  33.  
  34.        friend ostream& operator <<(ostream &out,Sudoku &s);
  35.  
  36.    private:
  37.  
  38.        bool correcto(int fila, int columna, int valor);
  39.        bool resolver(int fila, int columna);
  40.        bool multiples_soluciones(int fila, int columna);
  41.  
  42.        int tabla[9][9];
  43.        bool solucionado;
  44. };
  45.  
  46. Sudoku::Sudoku()
  47. {
  48.    for(int i = 0 ; i < 81 ; i++)
  49.        tabla[i / 9][i % 9] = 0;
  50.  
  51.    solucionado = false;
  52. }
  53.  
  54. bool Sudoku::cargar(char *nombrefichero)
  55. {
  56.    int i;
  57.    char fila[19]; //los 9 numeros + 8 espacios + 1 salto de linea + '\0';
  58.    FILE *f;
  59.  
  60.    if(!(f = fopen(nombrefichero,"r")))
  61.        return false;
  62.  
  63.    for(i = 0 ; i < 9 ; i++)
  64.    {
  65.        fgets(fila,19,f);
  66.  
  67.        if(strlen(fila) < 18 || fila[strlen(fila) - 1] != '\n') //formato incorrecto
  68.        {
  69.            for(int j = 0 ; j < i ; i++) //anulamos la lectura que habia hasta el momento
  70.                memset(tabla[j] , 0 , 9 * sizeof(int));
  71.  
  72.            fclose(f);
  73.  
  74.            return false;
  75.        }
  76.  
  77.        for(int j = 0 ; j < 9 ; j++)
  78.        {
  79.            if(fila[2 * i] < '0' || fila[2 * i] > '9')//Si las posiciones pares no son un numero
  80.            {
  81.                for(int k = 0 ; k < i ; k++) //anulamos la lectura que habia hasta el momento
  82.                    memset(tabla[k],0,9*sizeof(int));
  83.  
  84.                fclose(f);
  85.  
  86.                return false;
  87.            }
  88.  
  89.            if(fila[2 * i + 1] != ' ' && fila[2 * i + 1] != '\n')//Si las posiciones impares no son ni espacio ni \n
  90.            {
  91.                for(int k = 0 ; k < i ; k++) //anulamos la lectura que habia hasta el momento
  92.                    memset(tabla[k],0,9*sizeof(int));
  93.  
  94.                fclose(f);
  95.  
  96.                return false;
  97.            }
  98.        }
  99.  
  100.        //traducimos la fila para el algoritmo
  101.        for(int j = 0 ; j < 9 ; j++)
  102.            tabla[i][j] = fila[2 * j] - '0';
  103.    }
  104.  
  105.    fclose(f);
  106.  
  107.    return true;
  108. }
  109.  
  110. bool Sudoku::solucionar()
  111. {
  112.    return resolver(0,0);
  113. }
  114.  
  115. bool Sudoku::solucion_unica()
  116. {
  117.    return !multiples_soluciones(0,0);
  118. }
  119.  
  120. bool Sudoku::correcto(int fila, int columna, int valor)
  121. {
  122.    for(int i = 0 ; i < 9 ; i++)
  123.    {
  124.        if(tabla[i][columna] == valor)
  125.            return false;
  126.  
  127.        if(tabla[fila][i] == valor)
  128.            return false;
  129.  
  130.        if(tabla[3 * (fila / 3) + i / 3][3 * (columna / 3) + i % 3] == valor)
  131.            return false;
  132.    }
  133.  
  134.    return true;
  135. }
  136.  
  137. bool Sudoku::resolver(int fila, int columna)
  138. {
  139.    if(fila == 9)
  140.    {
  141.        solucionado = true;
  142.        return true;
  143.    }
  144.  
  145.    if(tabla[fila][columna] != 0) //Si tenemos un numero original
  146.    {
  147.        if(resolver((9 * fila + columna + 1) / 9, (9 * fila + columna + 1) % 9)) //pasamos a resolver la siguiente posicion
  148.            return true;
  149.    }
  150.    else
  151.    {
  152.        //probamos cada uno de los numeros
  153.        for(int i = 1 ; i <= 9 ; i++)
  154.        {
  155.            if(correcto(fila,columna,i)) //Si es corrector en la posicion dada
  156.            {
  157.                tabla[fila][columna] = i; //Marcamos la casilla con el numero
  158.  
  159.                //Y pasamos a resolver la siguiente posicion
  160.                if(resolver((9 * fila + columna + 1) / 9, (9 * fila + columna + 1) % 9))
  161.                    return true;
  162.            }
  163.        }
  164.  
  165.        tabla[fila][columna] = 0; //Volvemos a dejar vacia la posicion actual
  166.    }
  167.  
  168.    return false;
  169. }
  170.  
  171. bool Sudoku::multiples_soluciones(int fila, int columna)
  172. {
  173.    if(fila == 9)
  174.    {
  175.        if(!solucionado)
  176.        {
  177.            cout << *this << endl;
  178.            solucionado = true;
  179.            return false;
  180.        }
  181.        cout << *this << endl;
  182.        return true;
  183.    }
  184.  
  185.    if(tabla[fila][columna] != 0) //Si tenemos un numero original
  186.    {
  187.        if(multiples_soluciones((9 * fila + columna + 1) / 9, (9 * fila + columna + 1) % 9)) //pasamos a resolver la siguiente posicion
  188.            return true;
  189.    }
  190.    else
  191.    {
  192.        //probamos cada uno de los numeros
  193.        for(int i = 1 ; i <= 9 ; i++)
  194.        {
  195.            if(correcto(fila,columna,i)) //Si es corrector en la posicion dada
  196.            {
  197.                tabla[fila][columna] = i; //Marcamos la casilla con el numero
  198.  
  199.                //Y pasamos a resolver la siguiente posicion
  200.                if(multiples_soluciones((9 * fila + columna + 1) / 9, (9 * fila + columna + 1) % 9))
  201.                    return true;
  202.            }
  203.        }
  204.  
  205.        tabla[fila][columna] = 0; //Volvemos a dejar vacia la posicion actual
  206.    }
  207.  
  208.    return false;
  209. }
  210.  
  211. ostream& operator <<(ostream &out,Sudoku &s)
  212. {
  213.    for(int i = 0 ; i < 9 ; i++)
  214.    {
  215.        if(!(i % 3))
  216.            out << endl;
  217.  
  218.        for(int j = 0 ; j < 9 ; j++)
  219.        {
  220.            if(!(j % 3))
  221.                out << ' ';
  222.  
  223.            out << s.tabla[i][j] << ' ';
  224.        }
  225.  
  226.        out << endl;
  227.    }
  228.  
  229.    return out;
  230. }
  231.  
  232. int main(int argc, char *argv[])
  233. {
  234.    Sudoku sudoku;
  235.  
  236.    if(argc != 2)
  237.    {
  238.        cout << argv[0] << " fichero";
  239.        return -1;
  240.    }
  241.  
  242.    if(!sudoku.cargar(argv[1]))
  243.    {
  244.        cout << "Error en carga de fichero." << endl;
  245.        return -1;
  246.    }
  247.  
  248.    if(sudoku.solucion_unica() && sudoku.esta_solucionado())
  249.    {
  250.        cout << "El sudoku tiene una unica solucion:" << endl;
  251.    }
  252.    else if(sudoku.esta_solucionado())
  253.        cout << "El fichero no contiene un sudoku correcto. Tiene mas de una solucion." << endl;
  254.    else
  255.        cout << "El sudoku no tiene solucion." << endl;
  256.  
  257.    return 0;
  258. }
  259.  
« Última modificación: 3 Octubre 2012, 15:42 pm por do-while » En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: RETOS C++
« Respuesta #118 en: 3 Octubre 2012, 15:24 pm »

SUDOKU (No se el numero de reto...)

El codigo no era correcto.

Lo reviso y lo vuelvo a colgar.

¡Saludos!
ok ya vi k algo raro pasaba.
En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: RETOS C++
« Respuesta #119 en: 3 Octubre 2012, 16:01 pm »

10- Un programa que escriba al revés las palabras.

Entrada: hola
Salida: aloh

15 puntos


Código
  1. #include <iostream>
  2. #define T 100
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.    char palabra[T];
  9.    for(int i=0; i<T; i++){
  10.            palabra[i]= '\0';
  11.    }
  12.  
  13.    cout << "Ingrese la palabra: ";
  14.    cin >> palabra;
  15.  
  16.    cout << "Palabra al reves:";
  17.    for(int i=99; i>=0; i--){
  18.        if(palabra[i] != '\0')
  19.            cout << palabra[i];
  20.    }
  21.  
  22.    return 0;
  23. }
  24.  

Creo que este es el ultimo que hare... Los demás bueno, O ya han sido publicados, o simplemente no se hacerlos. Y por ejemplo, el 11 y el 12, ya se como hacerlos, los tengo por ahi, pero son inspirados en paueky, es decir, son copiados, y bah...

De todas maneras superpost!!!!! pase buen tiempo, el diccionario, el hash, y esos altos aún no se como hacerlos. Pero algún día!
En línea


Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RECOPILACION DE RETOS] VBClassic Por 79137913
Programación Visual Basic
79137913 5 14,102 Último mensaje 21 Enero 2013, 18:58 pm
por 79137913
Zona de retos Scripting « 1 2 3 »
Scripting
Eleкtro 23 54,120 Último mensaje 20 Enero 2014, 19:16 pm
por Eleкtro
Retos de java « 1 2 »
Java
4dr14n31t0r 10 5,242 Último mensaje 22 Enero 2016, 16:06 pm
por 0xFer
Retos forenses en español?
Dudas Generales
Sapote 0 1,916 Último mensaje 22 Mayo 2017, 02:58 am
por Sapote
Retos(1 - 15) (wardGame) « 1 2 »
Desafíos - Wargames
4A45414E 14 7,191 Último mensaje 10 Noviembre 2018, 03:16 am
por zonahurbana
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines