Mister-小方


私信TA

用户名:1104986125

访问量:237566

签 名:

如此英俊为哪般

等  级
排  名 3
经  验 35515
参赛次数 1
文章发表 68
年  龄 19
在职情况 学生
学  校 大连交通大学
专  业 车辆工程

  自我简介:

TA的其他文章

解题思路以及注意事项:

  1. 用for()循环来模拟反弹的过程,注意不要忘了最后的反弹反弹高度以及开始落下的距离,其他的中间过程都是两倍的反弹高度。

  2. 注意不要弄错了scanf()里面的格式。

  3. 可以用double进行下强制转换。

实例代码:

#include"stdio.h"
int main()
{
    int size,i;
    double iterm=0,sum=0,high;                   //一定要初始化,不然后果不堪设想                             
    scanf("%lf %d",&high,&size);
    iterm=high;
    for(i=0;i<size;i++)                          //循环的开始和结束注意一下
    {
        if(i==0)                                 //加上最后的反弹
            sum+=iterm;                                
        else sum+=2*iterm;                       //中间过程
         iterm=(double)iterm/2;                  //强制转换,下次反弹前面的二分之一
    }
    printf("%0.2lf %0.2lf",iterm,sum);           //注意格式别错了
    return 0;
}

还有什么不懂的问题大家可以在下方的评论区提问,小方会为您解答

 

0.0分

71 人评分

  评论区

#include<stdio.h>
#include<math.h>
int main()
{
	int i=1;
	int m,n;
	double a,b,c=0;
	scanf("%lf %d",&m,&n);
	a= m/pow(2,n);
	while(i<=n)
	{
		b=m+m/2;
		m=m/2;
		c=c+b;
		i++;
	}
	printf("%.2f %.2f\n",a,c);
	return 0;
}我这个程哪里有问题,请帮忙指出
2019-03-08 23:51:26
#include<stdio.h>
#include<math.h>
int main()
{
	int i=1;
	int m,n;
	double a,b,c=0;
	scanf("%lf %d",&m,&n);
	a= m/pow(2,n);
	while(i<=n)
	{
		b=m+m/2;
		m=m/2;
		c=c+b;
		i++;
	}
	printf("%.2f %.2f\n",a,c);
	return 0;
}我这个程序哪里错了
2019-03-08 23:50:40
#include<stdio.h>

int _tmain(int argc, _TCHAR* argv[])
{
	int b,i;
	double x=0,a;
	scanf("%Lf %d",&a,&b);
	for(i=1;i<=b;i++)
	{
		if(i<=2)
		{
			x+=1000;
			a=a/2;
		}
		else
		{
		x+=2*a;
		a=a/2;
		}
	}
	printf("%0.2Lf %0.2Lf",a,x);
	return 0;
}
感觉没毛病啊!!!
2019-02-26 18:11:50
#include<stdio.h>
int main()
{
	int m,n,i;
	double m1=0,n1=2;
	scanf("%d%d",&m,&n);
	for(i=1;i<n;i++)
	{
		n1=n1*2;
		m1=m1+n1;
	}
	if(n==0)
	{
		printf("%d.00 %d.00\n",m,n);
	}
	else
	{
		printf("%.2lf %.2lf\n",m/n1,(m/n1*m1)+m);		
	}
	return 0;
}
2019-02-25 19:25:20
#include<stdio.h>
#include<stdlib.h>
int main()
{
    long double M,N,m,n;//m和n分别是反弹高度和历经路程
    scanf("%Lf %Lf",&M,&N);
    m=M*pow(0.5,N);
    n=M*(3-pow(0.5,N-2));
    printf("%.2Lf %.2Lf",m,n);
    return 0;
}
2019-02-24 17:09:06
你那个当size=1时为1000,size=2时为2000,那前面赋值给sum=1000为什么不加进去呢,想半天都想不出来。
2019-02-10 11:07:03
int i;
    double M,N,height;
    scanf("%lf %lf",&M,&N);
    double sum = M;
    height=M*pow(0.5,N);
    for(i=1;i<N;i++)
    {
        sum=sum+2*M*pow(0.5,i);
    }
    printf("%0.2lf %0.2lf",height,sum);
2019-01-20 19:37:29
int main()
{
	float M,sum=0,a=0;
	int N;
	scanf("%f %d",&M,&N);
	for(int i=1;i<=N;i++)
	{
		sum+=M+a;
		a=M/2;
		M=M/2;
	}
	printf("%.2f %.2f\n",M,sum);
	return 0;
}
2019-01-15 17:57:21