NO.15【婳骨】の井底之蛙

题目

原题:
有一口深度为h的井, 井底有一只小青蛙 它白天可以向上爬u米, 而晚上会下滑d米
设计一个程序输入高度, 白天向上爬的距离, 晚上下滑的距离 计算出小青蛙需要多少天才能从井底爬出来
样例输入:
12 3 2
样例输出:
10

代码

#include <stdio.h>
#include <windows.h>
#include <conio.h>

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)

void In(double* a);
int main()
{
	double h, x, y, num;	//定义井深、白天爬的、晚上掉的、天数、总米数
	int day = 0;	//天数
	system("title 【婳骨】の井底之蛙");
	printf("青蛙掉井里h米,白天往上爬x米,晚上往下掉y米,问几天能出去?\n");
	printf("注意:以下除天数外均保留两位小数\n");
	printf("请输入井深几米:");
	while (1)
	{
		In(&h);
		if (h <= 0)
		{
			printf("请输入正值:\n");
		}
		else break;
	}
	printf("请输入白天爬的米数:\n");
	while (1)
	{
		In(&x);
		if (x < 0)
		{
			printf("请输入正值:\n");
		}
		else if (x == 0)
		{
			printf("你这都不带爬动的,出不去了,没救了,等死吧\n");
			exit(0);
		}
		else break;
	}
	if (x >= h)
	{
		printf("井深%.2lf米,白天能爬%.2lf米\n", h, x);
		printf("好,一天就上来了,干得漂亮,完事!\n");
		exit(0);
	}
	printf("请输入晚上掉的米数:\n");
	while (1)
	{
		In(&y);
		if (y < 0)
		{
			printf("请输入正值:\n");
		}
		else break;
	}
	if (y == 0)
	{
		printf("好家伙,你这是蜘蛛还是青蛙啊\n");
	}
	if (x > y)
	{
		for (num = 0; num < h; num -= y)
		{
			num += x;
			day++;
			if (h - num > 0)
			{
				printf("第%d天入睡前,距离井口还有%.2lf米远\n", day, h - num);
			}
		}
		printf("第%d天出来啦!\n", day);
		printf("井深%.2lf米,白天能爬%.2lf米,晚上能掉%.2lf米,总共%d天能爬出来\n", h, x, y, day);
		exit(0);
	}
	else printf("别了,爬的没掉的多,上不去了\n");
	system("pause");
	return 0;
}

void In(double* a)	//对输入数据进行判断
{
	do
	{
		if (scanf_s("%lf", a) == 1)
		{
			break;
		}
		char choice;
		while ((choice = getchar()) != '\n' && choice != EOF);
		printf("输入的不是数字!\n");
	} while (scanf_s("%lf", a) != 1);
}

部分运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值