| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2052 人关注过本帖
标题:唉,自由落体的循环题,我又来找大佬指点了
只看楼主 加入收藏
关耳扛刀
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2018-9-27
结帖率:80%
收藏
 问题点数:0 回复次数:7 
唉,自由落体的循环题,我又来找大佬指点了
题目:一个球从高为x的空中落下,每次落地后反跳回原高度的一半再落下。求它在第n次落地时总共经过的距离。
#include<stdio.h>
int main()
{
    int i,n;
    double x;
    scanf("%lf%d",&x,&n);
    for(i=1;i<=(n-1);i=i*2){
        x=x+(x/2.0)*(1.0/i)*2;
    }
    printf("%.6lf\n",x);
    return 0;
}
问题:死在自由落体上,我设的i是就除了第一个垂直下落后面开始当成第一次着地,但答案一直出不来
搜索更多相关主题的帖子: 循环 int for printf return 
2018-09-28 20:19
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
稍微改了下
#include<stdio.h>
int main()
{
    int i,n;
    double x,distance;
    scanf("%lf%d",&x,&n);
    distance=x;
    for(i=1;i<n;i++){
        x/=2;
        distance+=x*2;
        
    }
    printf("%.6lf\n",distance);
    return 0;
}
不好意思,没考虑弹起的路程

[此贴子已经被作者于2018-9-28 20:37编辑过]

2018-09-28 20:27
关耳扛刀
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2018-9-27
收藏
得分:0 
100 10
199.804688

--------------------------------
Process exited after 5.462 seconds with return value 0
请按任意键继续. . .
emmmm运行出来的答案不对
2018-09-28 20:29
kfyniriu
Rank: 6Rank: 6
等 级:侠之大者
威 望:9
帖 子:105
专家分:426
注 册:2018-7-6
收藏
得分:0 
#include<stdio.h>
int main()
{
    int i,n;
    float x,h=0;
    scanf("%f%d",&x,&n);
    for(i=1;i<=n;i++)
    {
        if(i==1)
            h += x;
        else
            h += x/(2<<(i-2)) *2;
    }
    printf("%.6f\n",h);
    return 0;
}

供参考
2018-09-28 22:46
minecer
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-9-15
收藏
得分:0 
#include<stdio.h>

int main()
{
    int n;
    int i=1;
    double x,s;
    scanf("%lf %d",&x,&n);
    s=x;
    for(i=1;i<n;x/=2){
      i++;
      s=s+x/2.0*2;
    }printf("%f",s);
   
    return 0;
}
2018-09-29 09:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
一个球从高为x的空中落下,每次落地后反跳回原高度的一半再落下。
则第n次落地时总共经过的距离 = ( 3 - 4/(2^n) )*x;

程序代码:
#include <stdio.h>
#include <math.h>

int main( void )
{
    double x;
    unsigned n;
    scanf( "%lf%u", &x, &n );
    printf( "%lf\n", (3-1/exp2(n-2.))*x );
}
2018-09-29 11:10
关耳扛刀
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2018-9-27
收藏
得分:0 
拿个小本本记下来了,运行成功了,感谢大佬指点
2018-09-29 16:19
编程之客Vae
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2018-9-29
收藏
得分:0 
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int i,n;
    float height,x;
    printf("please input x,n\n");
    scanf("%f,%d",&x,&n);
    for(i = 1; i <= n; i++)
    {  
      if(i == 1)
      {
          height = x;
      }
      else
      {
        x = x/2.0;
        height = height + 2*x;
      }
    }
    printf("%f",height);
}
2018-09-30 13:41
快速回复:唉,自由落体的循环题,我又来找大佬指点了
数据加载中...
 
   



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

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