我为这个应用程序编程,但它不起作用,我的控制台窗口不会关闭 我认为我的问题出现在" etoiler"因为他给我看了第一句话" Bienvenue dans le Pendu !!" 这是我的代码,它讲的是一个简单的游戏,告诉你猜一个字的字母:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
void etoiler(int taille,char *mot_secret);
void verifiermot(char caractere,char *mot_secret,char *mot_secret_verif,int *nbre_coup);
char proposezUneLettre();
int main(){
/* -------------variables-----------------*/
char mot_secret_verif[]="MARRON";
char mot_secret[strlen(mot_secret_verif)];
char caractere;
int nbre_coup=10;
/*---------------traitement------------*/
printf("Bienvenue dans le Pendu !!\n");
etoiler(strlen(mot_secret_verif),mot_secret);
while(nbre_coup>0 && (strpbrk(mot_secret,'*'))){
verifiermot(caractere,mot_secret,mot_secret_verif,&nbre_coup);
printf("Il vous reste %d coups a jouer\n",nbre_coup);
printf("Quel est le mot secret? %s\n",mot_secret);
printf("Proposez une lettre : ");
caractere=proposezUneLettre();
printf("%c",caractere);
}
if(nbre_coup<=0){
printf("Perdu :p le mot secret etait %s",mot_secret_verif);
}
if(!strpbrk(mot_secret,'*')){
printf("Gagne ! Le mot secret etait bien",mot_secret_verif);
}
return 0;
}
/* ---------------------- les fonctions ------------------*/
void etoiler(int taille,char *mot_secret){
int i ;
for(i=0;i<taille;i++){
mot_secret[i]='*';
}
}
void verifiermot(char caractere,char *mot_secret,char *mot_secret_verif,int *nbre_coup){
int i ;
int b=0;
for(i=0;mot_secret_verif[i]!= '\0';i++){
if(mot_secret_verif[i]==caractere){
mot_secret[i]=mot_secret_verif[i];
b++;
}
}
if(!b){(*nbre_coup)--;}
}
char proposezUneLettre(){
char caractere = getchar();
caractere = toupper(caractere);
while(getchar()!='\n');
return caractere;
}
答案 0 :(得分:-1)
谢谢Cool Guy的回答 这是我的新代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
void etoiler(int taille,char *mot_secret);
void verifiermot(char caractere,char *mot_secret,char *mot_secret_verif,int *nbre_coup);
char proposezUneLettre();
int main(){
/* -------------variables-----------------*/
char mot_secret_verif[]="MARRON";
char mot_secret[strlen(mot_secret_verif)];
char caractere;
int nbre_coup=10;
/*---------------traitement------------*/
printf("Bienvenue dans le Pendu !!\n");
etoiler(strlen(mot_secret_verif),mot_secret);
while((nbre_coup > 0) && (strchr(mot_secret,'*')!=NULL)){
printf("Il vous reste %d coups a jouer\n",nbre_coup);
printf("Quel est le mot secret? %s\n",mot_secret);
printf("Proposez une lettre : ");
caractere=proposezUneLettre();
verifiermot(caractere,mot_secret,mot_secret_verif,&nbre_coup);
}
if(nbre_coup<=0){
printf("Perdu :p le mot secret etait %s",mot_secret_verif);
}
if(!strchr(mot_secret,'*')){
printf("Gagne ! Le mot secret etait bien %s",mot_secret_verif);
}
return 0;
}
/* ---------------------- les fonctions ------------------*/
void etoiler(int taille,char *mot_secret){
int i ;
for(i=0;i<taille;i++){
mot_secret[i]='*';
}
}
void verifiermot(char caractere,char *mot_secret,char *mot_secret_verif,int *nbre_coup){
int i ;
int b=0;
for(i=0;i<strlen(mot_secret_verif);i++){
if(mot_secret_verif[i]==caractere){
mot_secret[i]=mot_secret_verif[i];
b++;
}
}
if(!b){(*nbre_coup)--;}
}
char proposezUneLettre(){
char caractere = getchar();
caractere = toupper(caractere);
while(getchar()!='\n');
return caractere;
}