如何结束一个;“在……的同时”;5次尝试后循环?在C中
我让我的程序完全工作,除了我需要程序在5次尝试失败后停止询问之外。我完全不知道该怎么做。如果输入的数字连续5次不正确,那么最后会有一条抱歉消息。我不知道如何在代码中插入计数器,我知道我输入的内容可能根本不正确 另外,代码必须具有多个功能。有些我宁愿自己放进一个,但指令说是多个如何结束一个;“在……的同时”;5次尝试后循环?在C中,c,loops,counter,do-while,C,Loops,Counter,Do While,我让我的程序完全工作,除了我需要程序在5次尝试失败后停止询问之外。我完全不知道该怎么做。如果输入的数字连续5次不正确,那么最后会有一条抱歉消息。我不知道如何在代码中插入计数器,我知道我输入的内容可能根本不正确 另外,代码必须具有多个功能。有些我宁愿自己放进一个,但指令说是多个 #include <stdio.h> #include <stdlib.h> #include <time.h> int number; void welcomeMessage(){
#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;
}
#包括
#包括
#包括
整数;
void welcomeMessage(){
printf(“欢迎来到我的新猜谜游戏!\n”);
printf(“让我们开始吧!\n”);
}
整数随机数(整数){
整数范围;
srand(时间(空));
范围=(20-1)+1;
number=rand()%范围+1;
返回号码;
}
int猜测输入(){
智力猜测;
printf(“我想的是一个介于1和20之间的数字。\n”);
printf(“想猜一猜吗?小心!你只试了5次!:”;
scanf(“%d”,猜测(&guess);
返回猜测;
}
int guess_input(){
智力猜测;
scanf(“%d”,猜测(&guess);
返回猜测;
}
int错误答案(int猜测){
如果(猜测<数字)
{
printf(“再试一次,您的猜测太低:”;
返回1;
}如果(猜测>数字){
printf(“再试一次,你的猜测有点太高:”;
返回1;
}
返回0;
}
整数正确答案(整数猜测){
如果(猜测==数字){
printf(“干得好!那一次你做对了!\n”);
返回0;
}否则{
返回1;
}
}
无效sorryMessage(整数){
printf(“对不起,正确的数字是%number。\n”);
printf(“祝你下次好运!”);
}
int main(){
整数;
整数循环计数=5
智力猜测;
int正确答案=1;
int错误答案=1;
欢迎留言();
数字=随机数();
猜输入();
做{
正确答案=正确答案(猜测);
错误答案=错误答案(猜测);
猜测=猜测输入();
}
while(正确答案=1);
if(loopcount=5){
抱歉的消息
}
返回0;
}
我对您的程序做了最小的更改,以使其按预期编译和运行
#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 range;
srand((int)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 1;
} else{
return 0;
}
}
void sorryMessage(int number){
printf("Sorry, the correct number was %d\n",number);
printf("Better luck next time!");
}
int main(){
int number;
int loopCount = 0;
int guess;
int correct_answer;
int wrong_answer;
welcomeMessage();
number = randomNumber();
do
{
loopCount += 1;
if( loopCount > 5)
{
sorryMessage(number);
break;
}
guess = guessInput();
correct_answer = correctAnswer(guess);
wrong_answer = wrongAnswer(guess);
} while( !correct_answer );
return 0;
}
#包括
#包括
#包括
整数;
void welcomeMessage(){
printf(“欢迎来到我的新猜谜游戏!\n”);
printf(“让我们开始吧!\n”);
}
int随机数(){
整数范围;
srand((int)time(NULL));
范围=(20-1)+1;
number=rand()%范围+1;
返回号码;
}
int猜测输入(){
智力猜测;
printf(“我想的是一个介于1和20之间的数字。\n”);
printf(“想猜一猜吗?小心!你只试了5次!:”;
scanf(“%d”,猜测(&guess);
返回猜测;
}
int guess_input(){
智力猜测;
scanf(“%d”,猜测(&guess);
返回猜测;
}
int错误答案(int猜测){
如果(猜测<数字)
{
printf(“再试一次,您的猜测太低:”;
返回1;
}
否则如果(猜测>数字)
{
printf(“再试一次,你的猜测有点太高:”;
返回1;
}
返回0;
}
整数正确答案(整数猜测){
如果(猜测==数字){
printf(“干得好!那一次你做对了!\n”);
返回1;
}否则{
返回0;
}
}
无效sorryMessage(整数){
printf(“对不起,正确的数字是%d\n”,数字);
printf(“祝你下次好运!”);
}
int main(){
整数;
int loopCount=0;
智力猜测;
正确答案;
回答错误;
欢迎留言();
数字=随机数();
做
{
循环计数+=1;
如果(循环计数>5)
{
sorryMessage(号码);
打破
}
猜测=猜测输入();
正确答案=正确答案(猜测);
错误答案=错误答案(猜测);
}而(!正确答案);
返回0;
}
我对您的程序做了最小的更改,以使其按预期编译和运行
#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 range;
srand((int)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 1;
} else{
return 0;
}
}
void sorryMessage(int number){
printf("Sorry, the correct number was %d\n",number);
printf("Better luck next time!");
}
int main(){
int number;
int loopCount = 0;
int guess;
int correct_answer;
int wrong_answer;
welcomeMessage();
number = randomNumber();
do
{
loopCount += 1;
if( loopCount > 5)
{
sorryMessage(number);
break;
}
guess = guessInput();
correct_answer = correctAnswer(guess);
wrong_answer = wrongAnswer(guess);
} while( !correct_answer );
return 0;
}
#包括
#包括
#包括
整数;
void welcomeMessage(){
printf(“欢迎来到我的新猜谜游戏!\n”);
printf(“让我们开始吧!\n”);
}
int随机数(){
整数范围;
srand((int)time(NULL));
范围=(20-1)+1;
number=rand()%范围+1;
返回号码;
}
int猜测输入(){
智力猜测;
printf(“我想的是一个介于1和20之间的数字。\n”);
printf(“想猜一猜吗?小心!你只试了5次!:”;
scanf(“%d”,猜测(&guess);
返回猜测;
}
int guess_input(){
智力猜测;
scanf(“%d”,猜测(&guess);
返回猜测;
}
int错误答案(int猜测){
如果(猜测<数字)
{
printf(“再试一次,您的猜测太低:”;
返回1;
}
否则如果(猜测>数字)
{
printf(“再试一次,你的猜测有点太高:”;
返回1;
}
返回0;
}
整数正确答案(整数猜测){
如果(猜测==数字){
printf(“干得好!那一次你做对了!\n”);
返回1;
}否则{
返回0;
}
}
无效sorryMessage(整数){
printf(“对不起,正确的数字是%d\n”,数字);
printf(“祝你下次好运!”);
}
int main(){
整数;
int loopCount=0;
智力猜测;
正确答案;
回答错误;
欢迎留言();
数字=随机数();
做
{
循环计数+=1;
如果(循环计数>5)
{
sorryMessage(号码);
打破
}
猜测=猜测输入();
正确答案=正确答案(猜测);
错误答案=错误答案(猜测);
}而(!正确答案);
返回0;
}
注意:我更改了correctAnswer函数,如果答案正确,则返回1;如果答案不正确,则返回0。你的情况正好相反。但这样做会使它作为布尔值更直观。这非常有效,但每次它不正确时,它都会重复整个“int guessInput”printf(“我想的是一个介于1和20之间的数字。\n”);