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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 ... 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45 46 47 48 49
411  Programación / Programación C/C++ / Re: Problema con funciones en: 22 Enero 2012, 11:48 am
Muchísimas gracias, ya lo he corregido.

A opcion_1 le he llamado así porque hay 11 opciones de juego (si hubiera sido la única, le hubiera llamado de otra forma).

Saludos.
412  Programación / Programación C/C++ / Re: Comparando cadenas en: 22 Enero 2012, 11:45 am
Bueno, acabo de hacer que al insertar "fin" se cierre el programa poniendo:

Código
  1. while((strcmp(n11, "fin")!=0));

Por otra parte, RHL, he puesto ahora

Código
  1.  do{
  2.    printf("Introduce un nombre para comprobar si se encuentra entre los anteriores");
  3.    gets(n11);
  4.    if((strcmp(n1,n11)||
  5.    strcmp(n2,n11)||
  6.    strcmp(n3,n11)||
  7.    strcmp(n4,n11)||
  8.    strcmp(n5,n11)||
  9.    strcmp(n6,n11)||
  10.    strcmp(n7,n11)||
  11.    strcmp(n8,n11)||
  12.    strcmp(n9,n11)||
  13.    strcmp(n10,n11))!=0) printf("El nombre se encuentra entre los anteriores\n");
  14.    else printf("El nombre no se encuentra entre los anteriores\n");

en vez de si es igual a 0. El resultado ahora es que todo lo que inserto se encuentra entre los anteriores...

También, rir3760, creo que al final del manual que estoy siguiendo dan técnicas más avanzadas. Quizá por ahora pueda hacer algo parecido a lo que estoy haciendo, y cuando llegue a las técnicas, corregir el programa (porque con tantas funciones, me he perdido un poco...).

Bueno, muchas gracias a los dos. Voy a seguir intentando que me salga.

Saludos.


EDITO:

Para reducir el código, trato de hacer esto:

Código
  1. do{
  2.    for (i=0;i<=10;i++){
  3.    printf("Introduce un nombre");
  4.    gets(n1[i][20]);
  5.    }
  6. }
  7.    while(n1!=n1[9][20]);

Pero da errores. Así, solo tendría que meter una variable, tal y como dice rir3760.

Gracias.

Saludos.
413  Programación / Programación C/C++ / Re: Problema con strcat en: 22 Enero 2012, 11:15 am
Ah, ¡muchísimas gracias! Se me había olvidado que había también un caracter nulo...

Por cierto, en los sitios que he estado visitando para ver la función fgets; por lo que veo, hablan de ficheros (todavía no he llegado a esa parte en el manual que estoy siguiendo). Y no sé si será por haber usado gets; pero ahora el resultado del programa da bien, exceptuando que antes de mi nombre salen cuatro caracteres raros...

Gracias.

Saludos.

EDITO: Con sprintf, lo que acabo de decir, me lo ha hecho bien. Sin embargo, con strcat no...
414  Programación / Programación C/C++ / Comparando cadenas en: 22 Enero 2012, 01:17 am
Hola.

Estoy haciendo un problema que dice lo siguiente:

Un programa que pida 10 nombres y los memorice. Después deberá pedir que se teclee un nombre y dirá si se encuentra o no entre los 10 que se han tecleado antes. Volverá a pedir otro nombre y a decir si se encuentra entre ellos, y así sucesivamente hasta que se teclee “fin”.

Yo tengo esto:

Código
  1. /*Un programa que pida 10 nombres y los memorice. Después deberá pedir que se teclee
  2. un nombre y dirá si se encuentra o no entre los 10 que se han tecleado antes. Volverá
  3. a pedir otro nombre y a decir si se encuentra entre ellos, y así sucesivamente hasta que
  4. se teclee “fin”.*/
  5.  
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9.  
  10. int main(){
  11.  
  12.    char n1[20], n2[20], n3[20], n4[20], n5[20], n6[20], n7[20], n8[20], n9[20], n10[20], n11[20];
  13.    char n12[20]={"fin"};
  14.  
  15.    printf("Introduce un nombre");
  16.    gets(n1);
  17.    printf("Introduce otro nombre");
  18.    gets(n2);
  19.    printf("Introduce otro nombre");
  20.    gets(n3);
  21.    printf("Introduce otro nombre");
  22.    gets(n4);
  23.    printf("Introduce otro nombre");
  24.    gets(n5);
  25.    printf("Introduce otro nombre");
  26.    gets(n6);
  27.    printf("Introduce otro nombre");
  28.    gets(n7);
  29.    printf("Introduce otro nombre");
  30.    gets(n8);
  31.    printf("Introduce otro nombre");
  32.    gets(n9);
  33.    printf("Introduce otro nombre");
  34.    gets(n10);
  35.  
  36.  
  37.    do{
  38.    printf("Introduce un nombre para comprobar si se encuentra entre los anteriores");
  39.    gets(n11);
  40.    if((strcmp(n11,n1)||
  41.    strstr(n11,n2)||
  42.    strstr(n3,n11)||
  43.    strstr(n4,n11)||
  44.    strstr(n5,n11)||
  45.    strstr(n6,n11)||
  46.    strstr(n7,n11)||
  47.    strstr(n8,n11)||
  48.    strstr(n9,n11)||
  49.    strstr(n10,n11))==0) printf("El nombre se encuentra entre los anteriores\n");
  50.    else printf("El nombre no se encuentra entre los anteriores\n");
  51.  
  52.    }
  53.    while(n11!=n12);
  54.  
  55.    system("pause");
  56.    return 0;
  57.  
  58. }
  59.  
  60.  

Lo que me hace es que me reconoce si la primera palabra introducida (n1) es igual que la última (n11), pero con las demás no hace nada.

Además, al poner "fin", no finaliza el programa.

¿Alguien podría decirme cuál es mi problema?

Muchísimas gracias.

Saludos.
415  Programación / Programación C/C++ / Re: Problema con strcat en: 22 Enero 2012, 00:28 am
Lo acabo de hacer ahora con sprintf, y tampoco. Me sale lo mismo...

Este es el código entero:


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main(){
  6.  
  7.    char nombre[40],aux[60];
  8.    char dia[2],mes[2];
  9.  
  10.    printf("Introduce tu nombre");
  11.    gets(nombre);
  12.  
  13.    printf("Introduce el dia en que naciste");
  14.    gets(dia);
  15.  
  16.    printf("Introduce el mes en que naciste");
  17.    gets(mes);
  18.    sprintf(aux,"%s, nacido el %s/%s",nombre,dia,mes);
  19.  
  20.  
  21.  
  22.    printf("%s\n",aux);
  23.  
  24.    system("pause");
  25.    return 0;
  26. }
  27.  

Gracias.
416  Programación / Programación C/C++ / Problema con strcat en: 21 Enero 2012, 23:58 pm
Hola.

Estoy realizando un programa que pida por separado tu nombre, día de nacimiento, y mes, y que después lo una en una sola cadena.

Yo tengo esto:

Código
  1.    strcat(aux, nombre);
  2.    strcat(aux, ", nacido el ");
  3.    strcat(aux, dia);
  4.    strcat(aux, "/");
  5.    strcat(aux, mes);
  6.  
  7.    printf("%s\n",aux);

Y, al compilar, si pongo, por ejemplo:

Nombre: Nombre
Día: 09
Mes: 12

Sale como resultado: "Nombre, nacido el /12". Falta el 09...

¿Qué estoy haciendo mal?

Gracias.

Saludos.
417  Programación / Programación C/C++ / Problema con funciones en: 21 Enero 2012, 00:02 am
Hola.

Hace tiepo hice un programa que consistía en crear el juego de la ruleta. Ahora que he empezado a ver el tema de funciones, me gustaría hacerlo de esta forma.

Mientras antes tenía esto en la función main:

Código
  1. if(opcion==1){
  2.    do{
  3.    printf("\nIntroduce un 0 si apuestas por par o un 1 si es por impar");
  4.    scanf("%d",&x);
  5.    }
  6.    while((x!=0)&&(x!=1));
  7.  
  8.    if((x==0)&&(dado%2==0)){
  9.    bolsa=bolsa+2*apuesta;
  10.    printf("\nHas acertado, es par. Ha salido %d. Su bolsa es de %d fichas", dado,bolsa);                                                
  11.    }
  12.    else{
  13.      if((x==1)&&(dado%2!=0)){
  14.      bolsa=bolsa+2*apuesta;
  15.      printf("\nHas acertado, es impar. Ha salido %d. Su bolsa es de %d fichas", dado,bolsa);                                                
  16.      }
  17.      else{
  18.        if((x==0)&&(dado%2!=0)){
  19.        printf("\nNo has acertado. Ha salido %d. Su bolsa es de %d fichas", dado,bolsa);                                                
  20.        }  
  21.        else{
  22.          if((x==1)&&(dado%2==0)){
  23.          printf("\nNo has acertado. Ha salido %d. Su bolsa es de %d fichas", dado,bolsa);                                                
  24.          }      
  25.        }  
  26.      }  
  27.  
  28.    }            
  29.  }

Ahora pongo lo siguiente en una función:

Código
  1. int opcion_1 (int x){
  2.    int dado,apuesta,bolsa;
  3.    srand(time(NULL));
  4.    dado= rand()%36;
  5.    do{
  6.    printf("\nIntroduce un 0 si apuestas por par o un 1 si es por impar");
  7.    scanf("%d",&x);
  8.    }
  9.    while((x!=0)&&(x!=1));
  10.  
  11.    if((x==0)&&(dado%2==0)){
  12.    bolsa=bolsa+2*apuesta;
  13.    printf("\nHas acertado, es par. Ha salido %d. Su bolsa es de %d fichas", dado,bolsa);                                                
  14.    }
  15.    else{
  16.      if((x==1)&&(dado%2!=0)){
  17.      bolsa=bolsa+2*apuesta;
  18.      printf("\nHas acertado, es impar. Ha salido %d. Su bolsa es de %d fichas", dado,bolsa);                                                
  19.      }
  20.      else{
  21.        if((x==0)&&(dado%2!=0)){
  22.        printf("\nNo has acertado. Ha salido %d. Su bolsa es de %d fichas", dado,bolsa);                                                
  23.        }  
  24.        else{
  25.          if((x==1)&&(dado%2==0)){
  26.          printf("\nNo has acertado. Ha salido %d. Su bolsa es de %d fichas", dado,bolsa);                                                
  27.          }      
  28.        }  
  29.      }          
  30.    }    
  31.  
  32. }
  33.  
  34.  return(0);    
  35. }

Y, después, voy a la función main, y pongo:

Código
  1. int main (void){
  2.  
  3.  int opcion_juego,apuesta,bolsa,x,dado;
  4.  srand(time(NULL));
  5.  dado= rand()%36;
  6.  
  7.  
  8.    mostrar_ruleta();
  9.    apostar_fichas(apuesta);
  10.    opcion(opcion_juego);
  11.    bolsa=bolsa-apuesta;
  12.    opcion_1(x); //Esto es lo referente a la funcion
  13.  
  14.  

Por favor, ¿alguien podría explicarme cuál es mi problema?

Muchas gracias.

Saludos.

EDITO: Acabo de conseguir que la función funcione dentro de main. Pero creo que las variables se lían unas con otras, porque me dice que la bolsa es "9857437" y que el número que ha salido es "487434"...

Gracias.
418  Programación / Programación C/C++ / Re: Es necesario saber diagramar en: 19 Enero 2012, 22:23 pm
Yo según el tipo de programa. Si tiene muchas condiciones, primero siempre tomo notas en papel, y después lo hago. Sino, lo hago de cabeza.

Pero vamos, yo también soy principiante en C.
419  Programación / Programación C/C++ / Re: Duda sobre Cuatro en línea en: 19 Enero 2012, 18:42 pm
Muchísimas gracias. Ya entiendo el programa entero.

Ahora voy a intentar hacer la opción de si hay 4 en vertical, que me parece que en su código no sale bien.

Saludos.
420  Programación / Programación C/C++ / Re: Duda sobre Cuatro en línea en: 19 Enero 2012, 18:25 pm
No sé por qué, pero me da el error
" too few arguments to function `int finPartida(int (*)[8])' "
Haciendo esto:


Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int finPartida(int m[8][8])
  5. {
  6.  
  7.    int i, j;
  8.    for(i = 8-1; i >= 3; i--)
  9.        for(j = 8-1; j >= 3; j--)
  10.            if((m[i][j] == m[i-1][j] && m[i][j] == m[i-2][j] && m[i][j] == m[i-3][j] && m[i][j] != 0) ||
  11.               (m[i][j] == m[i][j-1] && m[i][j] == m[i][j-2] && m[i][j] == m[i][j-3] && m[i][j] != 0) ||
  12.               (m[i][j] == m[i-1][j-1] && m[i][j] == m[i-2][j-2] && m[i][j] == m[i-3][j-3] && m[i][j] != 0))
  13.                return 1;
  14.  
  15.    for(i = 8-1; i >= 3; i--)
  16.        for(j = 0; j <= 8-3; j++)
  17.            if(m[i][j] == m[i-1][j+1] && m[i][j] == m[i-2][j+2] && m[i][j] == m[i-3][j+3] && m[i][j] != 0)
  18.                return 1;
  19.  
  20.    return 0;
  21. }
  22.  
  23.  
  24. int main (void)
  25. {
  26.   int M[8][8];
  27.  
  28.  int i, j, col, jugador, s, fila[8];
  29.  
  30.   for(i=0; i<8; i++){
  31.       for(j=0; j<8; j++){
  32.           M[i][j] = 0;
  33.       }
  34.       fila[i] = 7;
  35.   }
  36.  
  37.   jugador = 1;
  38.  
  39.   do{    
  40.  
  41.  
  42.   for(i=0; i<8; i++){
  43.       for(j=0; j<8; j++){
  44.           printf("%d  ",M[i][j]);                
  45.       }  
  46.       printf("\n");                                  
  47.   }
  48.  
  49.   printf("Introduce la columna (1-8): ");
  50.   scanf("%d", &col);
  51.  
  52.   col = col-1;
  53.  
  54.   M[fila[col]][col] = jugador;
  55.  
  56.   fila[col]--; //
  57.  
  58.  
  59.   do{
  60.   printf("Introduzca un 0 si abandona o un 1 si quiere seguir jugando: ");
  61.   scanf("%d", &s);
  62.   jugador = 3-jugador;
  63.   }
  64.   while((s<0)||(s>1));
  65.   }
  66.   while(s==1);
  67.  
  68.   finPartida();
  69.  
  70.  
  71.  
  72.  
  73. system("pause");    
  74. return 0;
  75. }

El código en sí lo he entendido.

Gracias.
Páginas: 1 ... 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45 46 47 48 49
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines