优化这段代码我想用C语言完成一段程序:猜数字游戏先输入两个不超过100的正整数分别是被拆除mynumber和允许猜测的最大次数n再输入你所猜的数yournumber,与被仓鼠mynumber进行比较,若相等显示,猜中若不懂显示与被差数的大小关系,最多允许才n次。如果一次就猜出该数提示“Bingo!”;如果三次以内猜到该数则提示“Lucky you!”;如果超过三次,但不超过n次猜到该数则提示“Good Guess!”;如果超过n次都没有猜中,则提示“Game Over”;如果在到达n次之前,用户输入了一个负数,也输出“Game Over”,并结束程序
时间: 2023-05-20 17:03:57 浏览: 118
以下是一种可能的优化代码的方式:
```
#include <stdio.h>
int main() {
int mynumber, n, yournumber, guess, count = 0;
printf("请输入两个不超过100的正整数,分别是被拆除的数字和允许猜测的最大次数:\n");
scanf("%d %d", &mynumber, &n);
while (count < n) {
printf("请输入你所猜的数字:\n");
scanf("%d", &yournumber);
if (yournumber < 0) {
printf("Game Over\n");
return 0;
}
if (yournumber == mynumber) {
if (count == 0) {
printf("Bingo!\n");
} else if (count <= 2) {
printf("Lucky you!\n");
} else {
printf("Good Guess!\n");
}
return 0;
} else if (yournumber < mynumber) {
printf("你猜的数字小了\n");
} else {
printf("你猜的数字大了\n");
}
count++;
}
printf("Game Over\n");
return 0;
}
```
这个程序使用了一个 while 循环来实现猜数字游戏的逻辑。在每次循环中,程序会提示用户输入猜测的数字,然后与被拆除的数字进行比较。如果猜中了,程序会根据猜测的次数输出不同的提示信息,并结束程序。如果没有猜中,程序会根据猜测的大小关系输出相应的提示信息,并继续循环,直到猜测的次数达到最大次数或者用户输入了一个负数。最后,程序会输出“Game Over”并结束。
注意,这个程序中使用了 scanf 函数来读取用户输入的数字,这可以避免用户输入非法字符导致程序崩溃的问题。同时,程序中也使用了一些条件语句来实现不同的逻辑分支,这可以使程序更加灵活和易于理解。
阅读全文