猴子吃桃程序_扩展2 猴子第一天摘了若干个桃子,吃了一半,不过瘾,又多吃了1个。第二天早上将剩余的桃子又吃掉一半,并且又多吃了1个。此后每天都是吃掉前一天剩下的一半零一个。到第n天再想吃时,发现只剩下1个桃子,问第一天它摘了多少桃子?为了加强交互性,由用户输入不同的天数n进行递推,即假设第n天的桃子数为1。同时还要增加对用户输入数据的合法性验证(如:不允许输入的天数是0和负数) 程序运行结果示例: Input days: 0↙ Input days: -5↙ Input days: a↙ Input days: 3↙ x=10 输入格式:"%d" 输出格式: 输入提示信息:"Input days:\n" 输出:"x=%d\n"
时间: 2024-02-13 13:07:33 浏览: 22
以下是符合要求的程序代码:
```c
#include <stdio.h>
int main() {
int n, x = 1;
printf("Input days:\n");
while (scanf("%d", &n) != 1 || n <= 0) { // 输入合法性验证
printf("Input days:\n");
while (getchar() != '\n') continue; // 清空缓冲区
}
for (int i = 1; i < n; i++) {
x = (x + 1) * 2;
}
printf("x=%d\n", x);
return 0;
}
```
程序的运行流程如下:
1. 程序首先输出提示信息 `"Input days:\n"`,并且使用 `scanf` 函数读入用户输入的天数 `n`,同时进行输入合法性验证,只有在用户输入的天数合法时才继续执行下面的代码。
2. 程序使用循环从第一天开始递推到第 `n-1` 天,每天的桃子数目为 `(x+1)*2`,其中 `x` 表示前一天剩余的桃子数。
3. 循环结束后,程序输出 `x` 的值,即第一天摘的桃子数目。
4. 程序返回0,表示正常结束。
需要注意的是,本程序还增加了输入合法性验证的功能,即只有当用户输入的天数为正整数时,才进行计算。如果用户输入的天数不合法,程序会输出提示信息 `"Input days:\n"`,并要求用户重新输入。同时,为了避免输入缓冲区中可能还有其他非法字符,程序在每次输入不合法时都会清空输入缓冲区。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)