为了账号安全,请及时绑定邮箱和手机立即绑定

具体问题如下,请问返回小蚕需要多少天才能爬到树顶?

具体问题如下,请问返回小蚕需要多少天才能爬到树顶?

墨色风雨 2021-12-10 21:07:31
/*请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!函数int day(int k,int m,int n),其功能是:返回小蚕需要多少天才能爬到树顶(树高k厘米,小蚕每天白天向上爬m厘米,每天晚上因睡觉向下滑n厘米,爬到顶后不再下滑)(n<m<k)。 例如,若分别 输入253、71、29给 k、m、n,则输出结果为:6。 */#include <conio.h>#include <stdio.h>#include <windows.h>int day( int k, int m, int n ){ int days, height = 0; for(__1___;; days ++) /*for循环用来统计天数*/ { height += m; /*height用于计算小蚕向上爬的高度*/ if ( __2___) return days; /*如果小蚕白天爬到了树顶,则返加天数days*/ height -= n; /*否则到晚上小蚕因睡觉向下滑n厘米*/ }}main(){ int k, m, n; system("cls"); printf("\nPlease enter 3 numbers: "); scanf("%d %d %d", &k, &m, &n ); printf( "\nFor %d days, worm will be at the top.",day(k,m,n));}
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

1. days = 1
2. height >= k
其实这很简单的算法问题,int t =(k-m)/(m-n) ,如果能整除则days=t+1,不能则days=t+2。
调试如下: 与题意无关的语句我暂时屏蔽掉,你要用的时候再开启便是。

/*#include <conio.h> */
/*#include <stdio.h> */
/*#include <windows.h> */
int day( int k, int m, int n )
{
int days, height = 0;
for(days=1;; days ++) /*for循环用来统计天数*/
{
height += m; /*height用于计算小蚕向上爬的高度*/
if (height>=k) return days; /*如果小蚕白天爬到了树顶,则返加天数days*/
height -= n; /*否则到晚上小蚕因睡觉向下滑n厘米*/
}
}

main()
{
int k, m, n;

/* system("cls"); */
printf("\nPlease enter 3 numbers: ");
scanf("%d %d %d", &k, &m, &n );
printf( "\nFor %d days, worm will be at the top.",day(k,m,n));
getch();
}



查看完整回答
反对 回复 2021-12-13
?
呼如林

TA贡献1798条经验 获得超3个赞

1. days = 0
2. height >= k

查看完整回答
反对 回复 2021-12-13
  • 2 回答
  • 0 关注
  • 198 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信