| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
Reworld,下班在家制作游戏,1500万奖金等你拿千里之行 始于足下
共有 302 人关注过本帖
标题:简单但不懂 求教
只看楼主 加入收藏
一壶瀑布
Rank: 1
等 级:新手上路
威 望:2
帖 子:12
专家分:0
注 册:2019-6-16
结帖率:100%
  已结贴   问题点数:20  回复次数:6   
简单但不懂 求教
#include<stdio.h>
int main()
{int n;
    double m;
    int i=0;
    double t=0;
    double x=0;
    double y=0;
    scanf("%d%lf",&n,&m);
while(i<n)

{
   
i++;
x=m/2;
m=x;
y+=x+m;
t=x+y;
}
printf( "%f%f",x,t);
return 0;
}
高m,落地后反弹m/2;求n次后高度;和走的总长??
哪错了!!!急,各路大神
搜索更多相关主题的帖子: int double printf return 高度 
2019-07-30 09:44
wufuzhang
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:广州
等 级:版主
威 望:20
帖 子:197
专家分:1289
注 册:2017-8-9
  得分:20 
我这边测试代码没问题呀,只是有点小瑕疵,
scanf("%d%lf",&n,&m);改为scanf("%d %lf",&n,&m);
printf( "%f%f",x,t);改为printf( "%lf\t%lf",x,t);
会好一点

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-07-30 10:11
一壶瀑布
Rank: 1
等 级:新手上路
威 望:2
帖 子:12
专家分:0
注 册:2019-6-16
  得分:0 
嗯  谢谢 !!!我知道了我少加了他弹起后落地的距离!但是1000 5   输出的总和为什么是2875我不懂
2019-07-31 10:44
wufuzhang
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:广州
等 级:版主
威 望:20
帖 子:197
专家分:1289
注 册:2017-8-9
  得分:0 
我不知道你的2875是怎么得到的。
小球弹跳1000后(每次反弹高度为上一次高度的一半),最后高度 =(1/2)^1000*5是一个很小很小的数字,约等于0,输出结果只保留6位小数,当然结果是0了。
而总和 = (h0+h1) + (h1+h2) + ...+ (hn-2 + hn-1) + (hn-1 + hn)
       = h0 + 2*h1 + 2*h2 + ...+ 2*hn-1 + hn
       = h0*(1 + 2*(1/2)^1 + 2*(1/2)^2 + ... + 2*(1/2)^(n-1) + (1/2)^n)
根据等比数列求和=h0*(1 + 2 + 0) = 3*h0 = 15
我这边输入1000 5,输出结果是0.000000 15.000000
和理论完全符合。
你把你改后的代码再贴出来看看
      

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-07-31 12:03
一壶瀑布
Rank: 1
等 级:新手上路
威 望:2
帖 子:12
专家分:0
注 册:2019-6-16
  得分:0 
嗯  谢谢 !!!我知道了我少加了他弹起后落地的距离!但是1000 5   输出的总和为什么是2875我不懂
2019-07-31 23:23
一壶瀑布
Rank: 1
等 级:新手上路
威 望:2
帖 子:12
专家分:0
注 册:2019-6-16
  得分:0 
#include<stdio.h>
int main()
{int n;
    double m;
    int i=0;
    double t=0;
    double x=0;
    double y=0;
   
    scanf("%d%lf",&n,&m);
while(i<n)

{
   
i++;


x=m/2;

m=x;
y+=x+2*m;
t=y-x;
}
printf( "%f%f",x,t);
return 0;
}
2019-07-31 23:31
一壶瀑布
Rank: 1
等 级:新手上路
威 望:2
帖 子:12
专家分:0
注 册:2019-6-16
  得分:0 
这会应该对了  是我没看清题  对不起!!!
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数
输入
M N
输出
它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行
样例输入
1000 5
样例输出
31.25 2875.00
2019-07-31 23:33
快速回复:简单但不懂 求教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.132588 second(s), 9 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved