2018大华软件大赛模拟赛第2题 (网络上有一台流媒体服务器S和一台客户端C,S向C发送流媒体数据。)

题目:  网络上有一台流媒体服务器S和一台客户端C,S向C发送流媒体数据。
  1、S的发送速率为M;
  2、C有一个缓冲区B,最大值大小为X,B接收来自S的流媒体,C处理B中的数据并清理,B的处理速度为N。
  3、为保证C处理的效率,当缓冲区大小超过80%时,C发送停止命令给S,S将停止向C发送数据。
  4、当缓冲区大小小于60%时,C向S发送重启发送数据命令,S向C发送数据。
  5、题中所有单位都是基本单位。

请设计一个函数handle_data_func,用来处理缓冲区B,并计算C第一次向S发送重启发送数据命令的时间T0及每次发送重启命令的的时间间隔T1。
注意:输出默认保留两位小数

输入:

  输入的第一行指定用例数量T;
  用例的第二行输入速率M、N;
  用例的第三行输入缓冲区大小X;

输出:

  客户端C第一次向服务端S发送重启发送数据命令的时间及时间间隔。

int handle_data_func(int M,int N,int X,int &T1)
input:
1
2 1
10
output:
10.00
4.00

本代码需要用g++ 编译

 1 #include <cstdio>
 2 
 3 double handle_data_func(double M,double N,double X,double &T1)
 4 {
 5     double v = M -N;
 6     double t1 = 0.0, t2 = 0.0;
 7     t1 = (0.8 * X) / v;
 8     t2 = (0.2 * X) / N;
 9 
10     double T0 = t1 + t2;
11 
12     t1 = (0.2 * X) / v;
13 
14     T1= t1 + t2;
15     return T0;
16     
17 }
18 
19 int main()
20 {
21     int i;
22     scanf("%d",&i);
23     double m, n, x;
24     double T0,T1;
25     while(i--)
26     {
27         scanf("%lf%lf",&m,&n);
28         scanf("%lf",&x);
29         T0 =handle_data_func(m, n, x,T1 );
30         printf("%.2f\n",T0);
31         printf("%.2f\n",T1);
32         
33     }
34     return 0;
35 }

猜你喜欢

转载自www.cnblogs.com/leezheng/p/8972159.html