【C语言】猴子吃桃程序_扩展2

本文通过C语言实现了一个经典的猴子吃桃问题。该程序允许用户输入任意正整数天数,然后递推计算第一天猴子摘了多少桃子。此外,程序还包含了对用户输入的有效性检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

猴子吃桃程序_扩展2

猴子第一天摘了若干个桃子,吃了一半,不过瘾,又多吃了1个。第二天早上将剩余的桃子又吃掉一半,并且又多吃了1个。此后每天都是吃掉前一天剩下的一半零一个。到第n天再想吃时,发现只剩下1个桃子,问第一天它摘了多少桃子?为了加强交互性,由用户输入不同的天数n进行递推,即假设第n天的桃子数为1。同时还要增加对用户输入数据的合法性验证(如:不允许输入的天数是0和负数)

  
#include <stdio.h>
int main()
{
    int day,x=1,ret=0;
    printf("Input days:\n");
    ret=scanf("%d",&day);
    while(1)
    {
        while(ret!=1)
        {
           while(getchar()=='\n');
           printf("Input days:\n");
           ret=scanf("%d",&day);
        }
        if(day<=0)
        {
            printf("Input days:\n");
            ret=scanf("%d",&day);
        }
        else
            goto end;
 
    }
    end:
    while(day>1)
    {
        x=(x+1)*2;
        day--;
    }
    printf("x=%d\n",x);
    return 0;
}

 

ret 为读入变量的个数

getchar()函数在while循环中不断读取缓冲区的字符,然后与换行符比较,

当这个字符是 '\n' , 结束输入
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白驹_过隙

听说打赏的都进了福布斯排行榜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值