Programación General > C/C++
Ahorcado en C
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
[#] Página Siguiente
Ir a la versión completa