习题2.7 弹球距离(15 分)浙大版《数据结构(第2版)》题目集

设有一个球从高度为h米的地方落下,碰到地面后又弹到高度为原来p倍的位置,然后又落下,再弹起,再落下…。请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈值TOL)时在空中所经过的路程总和。

函数接口定义:

double dist( double h, double p );

其中h是球的初始高度,p是球弹起高度与弹起前落下高度的比值;函数dist要返回球下落后到基本停下来时在空中所经过的路程总和。注意:当弹起的高度小于裁判程序定义的常数TOL时,弹起的距离不计算在内。

裁判测试程序样例:

#include <stdio.h>
#define TOL 1E-2

double dist( double h, double p );

int main()
{
    double h, p, d;
    scanf("%lf %lf", &h, &p);
    d = dist(h, p);
    printf("%.6f\n", d);
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

1.0 0.4

输出样例:

2.319680


代码:
double dist( double h, double p )
{
    double sum = h;
    while(h*p >= TOL)
    {
        h *= p;
        sum += h*2;
    }
    return sum;
}

原文地址:http://www.cnblogs.com/8023spz/p/7636002.html

时间: 2024-11-05 23:35:48

习题2.7 弹球距离(15 分)浙大版《数据结构(第2版)》题目集的相关文章

浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)

习题3-5 三角形判断 (15 分) 给定平面上任意三个点的坐标(x1,y1).(x2,y2).(x3,y3),检验它们能否构成三角形.1??,y?1??).(x?2??,y?2??).(x?3??,y?3??),检验它们能否构成三角形 输入格式: 输入在一行中顺序给出六个[?100,100]范围内的数字,即三个点的坐标x1.y1.x2.y2.x3.y3.(.x1,y1).(x2,y2).(x3,y3)1??.y?1??.x?2??.y?2??.x?3??.y?3??. 输出格式: 若这3个点不

习题4-1 求奇数和 (15分)

本题要求计算给定的一系列正整数中奇数的和. 输入格式: 输入在一行中给出一系列正整数,其间以空格分隔.当读到零或负整数时,表示输入结束,该数字不要处理. 输出格式: 在一行中输出正整数序列中奇数的和. 输入样例: 8 7 4 3 70 5 6 101 -1 输出样例: 116 #include<stdio.h> int main(void) { int num,sum=0; for(int i; ;i++){ scanf("%d",&num); if(num%2!=

习题3-2 高速公路超速处罚 (15分)

按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款:若达到或超出50%,就要吊销驾驶证.请编写程序根据车速和限速自动判别对该机动车的处理. 输入格式: 输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔. 输出格式: 在一行中输出处理意见:若属于正常行驶,则输出“OK”:若应处罚款,则输出“Exceed x%. Ticket 200”:若应吊销驾驶证,则输出“Exceed x%. License Revoked”.其中x是超速的百分比,精确到整数. 输入

习题4-9 打印菱形图案 (15分)

本题要求编写程序,打印一个高度为n的.由“*”组成的正菱形图案. 输入格式: 输入在一行中给出一个正的奇数n. 输出格式: 输出由n行星号“*”组成的菱形,如样例所示.每个星号后跟一个空格. 输入样例: 7 输出样例: * * * * * * * * * * * * * * * * * * * * * * * * * #include<stdio.h> int main(void) { int n=0; scanf("%d",&n); int row=(n/2)+1

浙大版《C语言程序设计(第3版)》题目集 习题2-6 求阶乘序列前N项和 (15 分)

习题2-6 求阶乘序列前N项和 (15 分) 本题要求编写程序,计算序列 1!+2!+3!+? 的前N项之和. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出整数结果. 输入样例: 5 输出样例: 153 思路:利用函数阶乘累加. 代码如下: #include <stdio.h> long factorial(long n); int main() { long n; scanf("%ld",&n); printf("%l

浙大版《C语言程序设计(第3版)》题目集 习题3-2 高速公路超速处罚 (15 分)

习题3-2 高速公路超速处罚 (15 分) 按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款:若达到或超出50%,就要吊销驾驶证.请编写程序根据车速和限速自动判别对该机动车的处理. 输入格式: 输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔. 输出格式: 在一行中输出处理意见:若属于正常行驶,则输出"OK":若应处罚款,则输出"Exceed x%. Ticket 200":若应吊销驾驶证,则输出"Exceed

pta 数据结构 习题2.4 递增的整数序列链表的插入(15 分)

习题2.4 递增的整数序列链表的插入(15 分) 本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性. 函数接口定义: List Insert( List L, ElementType X ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; type

习题2.5 两个有序链表序列的合并(15 分)&lt;有疑问?L1 L2 没办法变空&gt;

习题2.5 两个有序链表序列的合并(15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; typedef PtrToNode L

浙大版《C语言程序设计(第3版)》题目集 练习2-12 输出华氏-摄氏温度转换表 (15 分)

练习2-12 输出华氏-摄氏温度转换表 (15 分) 输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper].且每次增加2华氏度的华氏-摄氏温度转换表. 温度转换的计算公式:C=5×(F?32)/9,其中:C表示摄氏温度,F表示华氏温度. 输入格式: 在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开. 输出格式: 第一行输出:"fahr celsius" 接着每行输出一个华氏温度fahr(整型)与一