1
我得到了我的程序完全工作,除了我需要程序停止詢問5次失敗嘗試後。我完全不知道如何去做。假設輸入的數字連續5次不正確,最後會有一個抱歉的消息。我無法弄清楚如何將計數器插入代碼中,我知道我輸入的內容可能遠不及正確。如何在5次嘗試後結束「do ... while」循環?在C
P.S.代碼必須具有多個功能。有些我寧願自己放入一個,但教導說多個。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int number;
void welcomeMessage(){
printf("Welcome to my new guessing game!\n");
printf("Let's get started!\n");
}
int randomNumber(int number){
int range;
srand(time(NULL));
range = (20 - 1) + 1;
number = rand() % range + 1;
return number;
}
int guessInput(){
int guess;
printf("I'm thinking of a number between 1 and 20.\n");
printf("Care to give it a guess? Be careful! You only get 5 tries!: ");
scanf("%d", &guess);
return guess;
}
int guess_input(){
int guess;
scanf("%d", &guess);
return guess;
}
int wrongAnswer(int guess){
if(guess < number)
{
printf("Try again, your guess is too low: ");
return 1;
} else if(guess > number) {
printf("Give it another try, your guess was a bit too high: ");
return 1;
}
return 0;
}
int correctAnswer(int guess){
if(guess == number){
printf("Great job! That time you got it right!\n");
return 0;
} else{
return 1;
}
}
void sorryMessage(int number){
printf("Sorry, the correct number was %number.\n");
printf("Better luck next time!");
}
int main(){
int number;
int loopCount = 5
int guess;
int correct_answer = 1;
int wrong_answer = 1;
welcomeMessage();
number = randomNumber();
guessInput();
do {
correct_answer = correctAnswer(guess);
wrong_answer = wrongAnswer(guess);
guess = guess_input();
}
while(correct_answer == 1);
if(loopcount = 5){
sorryMessage
}
return 0;
}
注:我更改了您的correctAnswer函數,如果答案正確,則返回1,否則返回0。你反過來了。但是這樣做使得它更直觀,就像一個布爾值。 – waterjuice
這很有效,除非每次都不正確,它會重複整個'int guessInput'printf(「我正在考慮1到20之間的數字\ n」); printf(「小心給它一個猜測?小心!你只能得到5次嘗試!」);.我希望它打印得太低或太高。 –
這是因爲你的'guessInput()'函數每次都打印相同的東西。所以如果你想讓它打印出不同的東西,它應該選擇一個參數來選擇它會說的內容。例如,傳遞'loopCount'值作爲參數並使用'if(1 == loopCount){printf(「Something」); } else {printf(「別的東西!」); } – waterjuice