注册 登录
编程论坛 C++教室

用do while循环做这题

psyqin 发布于 2018-02-25 14:56, 1515 次点击
用do while循环做这题:
一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。 编程计算气球在第8次落地时,共经过多少米? 第8次反弹多高?
输入一个整数h,表示球的初始高度。
输出包含两行,均保留四位小数(四舍五入)。
第1行:到球第8次落地时,一共经过的米数。
第2行:第8次弹跳的高度。

救助,总是得到不正解。
2 回复
#2
yangfrancis2018-02-26 10:58
#include<iostream>
using namespace std;
int main()
{
    float height=0.0f;
    int n=8;
    float total=0.0f;
    cin>>height;
    do
    {
        total=(n==8?total+height:total+height*2);
        height*=0.5;
    }
    while(--n);
    cout<<total<<endl<<height<<endl;
    return 0;
}
#3
李昊逸Lion2018-03-04 16:09
这个可能比较好理解
程序代码:
#include<cstdio>
double h,s;
int n=7;
int main(){
    scanf("%lf",&h);
    do{
        s+=h*1.5;
        h/=2;
    }while(--n);
    s+=h;
    h/=2;
    printf("%.4lf\n%.4lf",s,h);
    return 0;
}


[此贴子已经被作者于2018-3-4 16:23编辑过]

1