A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 396944929 中级黑马   /  2015-1-4 00:13  /  1588 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
  第10次落地时,共经过多少米?第10次反弹多高?
*/
#include <stdio.h>
int main()
{
//        sum用来存储经过多少米。a是物体距地面高度
    float sum=0,a=100;
//    弹十次
    for(int i=0;i<=10;i++)
    {

        sum=sum+a;
        if(i==9)
            break;
        a=a/2;
    }
    printf("工经过%f米,第十次弹%f米\n",sum,a);
}

这个小程序不算长吧   但是用到了很多知识点   自加 还有for语句到底循环多少次  先把a存到sum里就是因为第一次弹起来没有降下来~
学到了不少。 以后继续努力学
大家看不懂可以留言问我

4 个回复

倒序浏览
虽然不是学IOS的,但是觉得这个东西挺管用!顶个
回复 使用道具 举报
我先画图简要的计算了一下3,4次的数值,然后用测试了一下,感觉是错的。
首先是sum的距离,你只计算了下落的总和,没有把反弹的距离加进去。
其次是你计算的反弹距离并不是最后一次,而是上一次。
#include <stdio.h>

int main()
{
    // sum用来存储经过多少米。a是物体距地面高度
    float sum=0,a=100;
    //    弹十次
    for(int i = 0;i < 10; i++)
    {
        //第一次距离只包括下落
        if(i == 0)
        {
            sum += a;
        }
        //之后的距离包括反弹和下落
        else
        {
            sum += 2*a;
        }
        //反弹距离为之前下落距离的一半
        a=a/2;
    }
    printf("工经过%f米,第十次弹%f米\n",sum,a);
}
这是我修改后的代码。:)大家多多讨论下~
回复 使用道具 举报
为什么定义的float变量。。。最后没有f
回复 使用道具 举报
sunshine429 发表于 2015-1-4 23:20
为什么定义的float变量。。。最后没有f

有的啊 哪里没有呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马