猴子吃桃程序_扩展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"
代码如下:
#include<stdio.h> int main() { int x = 1, day, n, flag; do { flag = 0; printf("Input days:\n"); n = scanf("%d", &day); if (n != 1) { flag = 1; while (getchar() != '\n'); } if (day <= 0) flag = 1; } while (flag == 1); while (day > 1) { x = (x + 1) * 2; day--; } printf("x=%d\n", x); return 0; }