/*请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!函数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();
}
添加回答
举报
0/150
提交
取消