新人起步(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;
}
錯誤:本次題目暫無