新人起步(4/n)

使用do-while,if完成小时候的数学题目.

一只乌龟在井底,每次可以爬高x米,每爬高一次就要下滑y米,爬到z米高的井口需要多少次?

误区:乌龟爬到井口的次数并不是z / (x - y),在这个次数之前乌龟已经到达井口的一次了。大部分人会无视条件,当我们输入x,和y时,x < y将无法成功。

个人结果

#include <stdio.h>

int main()
{
int gaodu = 0;
int pashang;
int xiahua;
int jinggao;
int cishu = 0;
printf("请输入乌龟爬上的米数(整数)");
scanf("%d",&pashang);
printf("请输入乌龟下滑的米数(整数)");
scanf("%d",&xiahua);
printf("请输入井的高度");
scanf("%d",&jinggao);
if(pashang > xiahua)
{
do{ gaodu = gaodu + pashang;
if(gaodu < jinggao)
{
gaodu = gaodu - xiahua;
cishu++;

}
else
{
cishu = cishu;
}

}while(gaodu < jinggao);
printf("乌龟爬高的次数为:%d",cishu);
}
else
{
printf("无法计算");
}
return 0;
}

修改题目,增加时间随机,设定乌龟爬上和下滑

乌龟爬上为3-5米,乌龟下滑为0-2米,井高度不变依旧为人工设定

更改后,因为爬上一定大于下滑,所以无需考虑x < y.

个人结果

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand((unsigned)time(NULL));
int gaodu = 0;
int pashang;
int xiahua;
int jinggao;
int cishu = 0;

printf("请输入井的高度");
scanf("%d",&jinggao);

do{ pashang = (rand() * 11) % 3 + 2;
xiahua = (rand() * 11) % 3;
gaodu = gaodu + pashang;
if(gaodu < jinggao)
{
gaodu = gaodu - xiahua;
cishu++;
printf("乌龟本次爬高为:%d米\n 乌龟本次下滑为:%d米\n 乌龟本次高度为:%d米\n",pashang,xiahua,gaodu);
}
else
{
cishu = cishu;
}

}while(gaodu < jinggao);
printf("乌龟爬高的次数为:%d",cishu);
return 0;
}

错误:本次题目暂无

猜你喜欢

转载自www.cnblogs.com/allsear/p/10139896.html