猿问

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

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

墨色风雨
浏览 199回答 2
2回答

慕斯王

1. days = 12. 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();}

呼如林

1. days = 02. height >= k
随时随地看视频慕课网APP
我要回答