Programación General > C/C++

 Ahorcado en C

(1/2) > >>

badyalberto:

--- Código: C --- #include<stdio.h>#include<string.h> int mostramenu();void adivina_paraula(char paraula[longitud]); int main(){    int aleatori,fi,longitud=0;    char paraula[longitud];        do    {               fi=0;          aleatori=mostra_menu();                    switch(aleatori)          {               case 1:                    strcat(paraula,"ordenador");                    longitud=strlen(paraula);                    adivina_paraula(paraula);                    break;               case 2:                    strcat(paraula,"software");                    longitud=strlen(paraula);                    adivina_paraula(paraula);                    break;               case 3:                    strcat(paraula,"videojuego");                    longitud=strlen(paraula);                    adivina_paraula(paraula);                    break;               case 4:                     strcat(paraula,"teclado");                    longitud=strlen(paraula);                    adivina_paraula(paraula);                    break;               case 5:                    fi=1;                    break;               default:                         printf("Opcio Incorrecte n");          }    }while(!fi);    getchar();getchar();} int mostra_menu(){    int aleatori;        printf("nJuego del ahorcadonn");    do    {          printf("Per escullir una paraula,digues una opcio de la 1 a la 4.n");          printf("Si per el contrari vols sortir digues la opcio 5.n");          scanf("%d", &aleatori);                    if ((aleatori != 1) && (aleatori != 2) && (aleatori != 3) && (aleatori != 4) && (aleatori != 5))             printf("Opcio Incorrecte n");    }while(aleatori<1 || aleatori>5);        return aleatori;}void adivina_paraula(char paraula[longitud]){     int i,errors=0,j,longitud;     char lletra,lletresintro[i],lletraerror[i];     printf("Introdueix una lletran");     fflush(stdin);     scanf("%c",&lletra);                for (i=0; i<longitud; i++);     {         lletresintro[i]=lletra;         printf("Les lletres introdueides fins aquest moment son: %c,n",lletresintro[i]);         if (paraula[i] == lletra)            printf("La lletra %c es correcten");         else         {             printf("Error la lletra %c no esta en la paraula n");             for (j=0; j<=errors;j++)             {                 if(lletresintro[i]!=lletraerror[j])                 {                      errors++;                      lletraerror[i]=lletresintro[i];                 }             }             j=0;         }         printf("Les lletres introdueides que han sigut erronies son %c, n",lletraerror[i]);         printf("El numero de errors es: %d n",errors);     }}                
pq me dice 27 incompatible type for argument 1 of `adivina_paraula'  ?

m0skit0:
Estaría bien que especificaras más tu problema.

Además, te digo:


--- Código: C ---if ((aleatori != 1) && (aleatori != 2) && (aleatori != 3) && (aleatori != 4) && (aleatori != 5)) Esto es un poco bestia, ¿no te parece? Menos código, más entendible y mejor pensado esto:


--- Código: C --- if( (aleatori<1) && (aleatori>5) ) Salud

badyalberto:
joe me has ido a quitar lo unico q esta bien xDDDD, eso  da igual pq siempre lo hacemos asi en clase aunk no quede bien visualmente.

ahora tengo un programa con el strlen que me dice incompatible aki:

strcat(paraula,"ordenador");
longitud=strlen(paraula);
adivina_paraula(paraula);

luego aki me dice q esta  indefinido longitud

void adivina_paraula(char paraula[longitud]);

m0skit0:

--- Cita de: "badyalberto" ---so da igual pq siempre lo hacemos asi en clase aunk no quede bien visualmente.
--- Fin de la cita ---
No se trata de que quede bien visualmente, sino de hacer que corra más rápido porque hay menos comparaciones. Vaya profesor tienen...  :bad:


--- Cita de: "badyalberto" ---luego aki me dice q esta indefinido longitud
void adivina_paraula(char paraula[longitud]);
--- Fin de la cita ---
Efectivamente, no puedes usar una variable para declarar el tamaño de un vector (ya sea como parámetro o como variable), porque como comprenderás, el compilador no sabe de antemano que valor va a tener y necesita reservar la memoria. Te basta con pasar un puntero:


--- Código: C ---void adivina_paraula(char paraula[]); Luego dentro de la función es tu problema de usar los índices adecuados para el vector.

Salud

badyalberto:
pero es q delante de la palabra me escribe valores raros :S y despues la palabra

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa