【发布时间】:2010-12-03 04:46:47
【问题描述】:
我有一个基本的 C 程序,它产生一个数字,用户必须猜测它(是的,你已经称之为:作业)。我能够得到几乎所有的东西,所以我有点自豪,但我对我犯的任何错误持开放态度,当然我还在学习。我的主要两个问题是
- 如何在用户选择正确的数字后,在尝试次数达到第 10 次之前提前结束该程序?并且
- 专家可以看出我没有使用我的代码的任何明显错误吗?
我正在尽我所能编程:)
int main(void)
{
int x = 10;
int i = 0;
int target, guess;
int numGuess = 0;
/*create a random number*/
//create random function
srand(time(NULL));//this creates new number based on time which changes every second :)
target = rand() % 99; //create a random number using the rand() function, from 0 -99
do{
//increase the loop until it meets the x variable
i++;
numGuess++;
//allow user to input a number for guess
scanf("%d", &guess);
if (guess == target)
{
printf("You win! \n\n");
}
else if (guess > target)
{
printf("You are too high. Guess a number:\n\n");
}
else if (guess < target)
{
printf("You are too low. Guess a number:\n\n");
}
}while(i < x);
printf("You lose, the number was %d. \n", target);
printf("Number of tries %d\n", numGuess);
printf("Enter any key to exit...");
getchar();
getchar();
return 0;
}
【问题讨论】:
-
您学习了基本的程序结构、do/while 循环、IO、sscanf、rand、为 rng 播种,但没有教过
break? -
很高兴看到您评论了您的代码 - 干得好:D
-
为什么最后有两个 getchar() 调用,当你说只需要 1 个键来结束程序时?
-
@Dominic Bou-Samra:他还在上学(而且可能还有很长的路要走);他很快就会停止评论。 xD
-
一个 nitpik, x%99 会给你一个 0-98 范围内的数字。你想要 x%100。一个真正的书呆子只需要 7 次猜测,10 次太多了:-)