| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 2015 人关注过本帖
标题:一个自由落体在降落,如何写程序,求思路。
取消只看楼主 加入收藏
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1941
专家分:3019
注 册:2009-12-22
结帖率:89.13%
收藏
已结贴  问题点数:10 回复次数:1 
一个自由落体在降落,如何写程序,求思路。
#include <stdio.h>
#include <stdlib.h>  // 用于处理输入错误

int main() {
    double n;         // 初始高度
    double total_distance = 0.0;  // 累计下落距离
    int time = 0;     // 整数秒时间
    char input[100];  // 用于接收用户输入

    // 获取并验证用户输入的高度(确保为正数)
    while (1) {
        printf("请输入初始高度N(米):");
        if (fgets(input, sizeof(input), stdin) == NULL) {
            printf("输入失败,请重新输入!\n");
            continue;
        }

        // 尝试将输入转换为浮点数
        if (sscanf(input, "%lf", &n) != 1) {
            printf("输入有误,请输入数字!\n");
            continue;
        }

        // 检查高度是否为正数
        if (n <= 0) {
            printf("高度必须是正数,请重新输入!\n");
            continue;
        }

        break;  // 输入有效,退出循环
    }

    // 计算完整秒数的累计距离
    while (1) {
        double next_second_distance = 9.8 * (time + 1);  // 下一秒的下落距离
        if (total_distance + next_second_distance >= n) {
            break;  // 下一秒会落地,退出循环计算小数部分
        }
        total_distance += next_second_distance;
        time++;
    }

    // 计算不足1秒的部分,得到总时间
    double remaining_distance = n - total_distance;  // 剩余距离
    double t = time + remaining_distance / (9.8 * (time + 1));  // 总时间

    // 输出结果(保留两位小数)
    printf("自由落体掉落到地面所需时间为:%.2f秒\n", t);

    return 0;
}


[此贴子已经被作者于2025-11-9 10:34编辑过]

搜索更多相关主题的帖子: time double 输入 高度 printf 
2012-07-30 08:08
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1941
专家分:3019
注 册:2009-12-22
收藏
得分:0 
主要是我写不出公式。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2012-07-30 08:12
快速回复:一个自由落体在降落,如何写程序,求思路。
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017740 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved