问题标题: 1010

0
0
已解决
王子健
王子健
初级天翼
初级天翼
#include<iostream>
using namespace std;
int main()
{
    double a,b,c,d,e,f,g,i,h;
    cin>>h;
    a=h/2;
    b=a/2;
    c=b/2;
    d=c/2;
    e=d/2;
    f=e/2;
    g=f/2;
    i=g/2;
    printf("%.4f/n",(int)(10000*(h+2*a+2*b+2*c+2*d+2*e+2*f+2*g+2*i)+0.5)/10000.0);
    printf("%.4f",(int)(10000*i+0.5)/10000.0);
    return 0; 
}

为什么错


0
已采纳
王子翔
王子翔
新手光能
新手光能
double h,sum=0;
    cin>>h;
    for(int i=1;i<=8;i++)
    {
        sum+=h;
        h=h/2;
        sum+=h;
    }   
    sum-=h;
    printf("%.4f\n%.4f",int(sum*10000+0.5)/10000.0,int(h*10000+0.5)/10000.0);
    return 0;
头文件<cstdio>

 

2
樊澄宇
樊澄宇
新手光能
新手光能
printf("%.4f\n",h+2*a+2*b+2*c+2*d+2*e+2*f+g+2*i);

改成

printf("%.4f\n",(int)(10000*(h+2*a+2*b+2*c+2*d+2*e+2*f+2*g)+0.5)/10000.0);
printf("%.4f",i);

改成

printf("%.4f",(int)(10000*i+0.5)/10000.0);
0
贺晓雨
贺晓雨
资深守护
资深守护
for (i=2;i<=8;i++)
{
a=a/2.0;
d=a+d*2;
}

a,b均为double型,a为累加,计算每次落地后反跳回原来高度的一半,也就是到球第8次落地时,一共经过的米数

b为第8次弹跳的高度。

0
颜咏春
颜咏春
中级光能
中级光能
 a=h/2/2/2/2/2/2/2/2;
    b=h+h/2+h/2+h/2/2+h/2/2+h/2/2/2+h/2/2/2+h/2/2/2/2+h/2/2/2/2+h/2/2/2/2/2+h/2/2/2/2/2+h/2/2/2/2/2/2+h/2/2/2/2/2/2+h/2/2/2/2/2/2/2+h/2/2/2/2/2/2/2;
    printf("%.4f",b);
    cout<<endl;
    printf("%.4f",a);
0
祝明朗
祝明朗
初级光能
初级光能
    double d=0,H;
    定义 h;
    输入>>h;
    d=h;
    H=h;
    循环(int i=2;i<=8;i++){
        H=H/2;
        d+=2*H;
    }
    printf("%.4f\n",(int)(d*10000+0.5)/10000.0);
    printf("%.4f\n",(int)(H/2*10000+0.5)/10000.0);

 

0
周天睿
周天睿
初级光能
初级光能

这道题最好的方法是for循环,当然也可以除啦,但这样会容易出错

    for(int i=1;i<=8;i++)
    {
        s+=2*h;
        h/=2;
    }

 

0
王子轩
王子轩
新手光能
新手光能
for(int i=1;i<=8;i++)
    {
        e+=t;
        t=(float)t/2;
        e+=t*2;
//        printf("e=%.4f\n",e);
 //       printf("t=%.4f\n",t);
    }
    e=(int)(e*10000+0.5)/10000.0;
    t=(int)(t*10000+0.5)/10000.0;
0
杨子逸
杨子逸
新手天翼
新手天翼
double d=0,H;
    int h;
    cin>>h;
    d=h;
    H=h;
    for(int i=2;i<=8;i++){
        H=H/2;
        d+=2*H;
    }
    printf输出("%.4f\n",(int)(d*10000+0.5)/10000.0);
    printf输出("%.4f",(int)(H/2*10000+0.5)/10000.0);
0
0
黄俊博
黄俊博
资深光能
资深光能
 for(i=1;i<=7;i++)
    {
        b=b/2.0;
        s=s+b*2;
    }
    b=b/2.0;
    printf("%.4f",(int)(s*10000+0.5)/10000.0);
    cout<<endl;
    printf("%.4f",(int)(b*10000+0.5)/10000.0);
0
周建勋
周建勋
中级光能
中级光能

头文件加上#include<cstdio>就OK了!

0
刘凯南
刘凯南
高级守护
高级守护
printf("%.4f",(int)(t*10000+0.5)/10000.0);四舍五入
0
芮奥运
芮奥运
高级光能
高级光能

printf("%.4f",(变量*10000+0.5)/10000.0)

0
栾峻岩
栾峻岩
初级天翼
初级天翼

他是给你一个数,让你去循环,不是去一个一个去除,这样当然也可以,但是很容易错。检查时不一定能检查出错误来哦!

主要程序:

for (int i=2;i<=8;i++)//注意是从2,不从1.
    {
        h/=2; // 高度减少一半,球下去了。
        s+=2*h;// 求反弹上来了。
    }
    h/=2;// 求最后一次下去。

0
阮俊雄
阮俊雄
新手光能
新手光能

可以把

a=h/2;

 

b=a/2;

 

c=b/2;

 

d=c/2;

 

e=d/2;

 

f=e/2;

 

g=f/2;

 

i=g/2;

改成:

for(i=2;i<=8;i++){

    h=h/2;

}

0
贺晓雨
贺晓雨
资深守护
资深守护

不用这样,可以用for循环

我要回答