如果没有给出测试用例,我该如何输入?

时间:2017-01-25 08:46:51

标签: c++

我在SPOJ上解决了这个问题。

http://www.spoj.com/problems/NECSTASY/

Problem Image

这是我的代码。

#include <iostream>
#include <iomanip>
#include <cmath>
#include <fstream>

const float PI=3.14159265;

using namespace std;

int main()
{
    float d,x,y,t;
    while((cin >> d >> x >> y >>t)!=EOF)
    {
        float u= PI*(t/180);
        float l = (d-y);
        float k = l*(1/sin(u/2));
        float h = k+x;
        cout << fixed << setprecision(2) << h << endl;
    }
    return 0;
}

我遇到的问题是没有给出测试用例。

我该如何处理?

2 个答案:

答案 0 :(得分:1)

您可以使用代码进行测试。

#include <iostream>
#include <iomanip>
#include <cmath>
#include <fstream>
#include <stdio.h>
const float PI=3.14159265;
using namespace std;
int main()
{
float d,x,y,t;
while(getchar()!=EOF)
{
 cin >> d >> x >> y >>t;
 float u= PI*(t/180);
 float l = (d-y);
 float k = l*(1/sin(u/2));
 float h = k+x;
 cout << fixed << setprecision(2) << h << endl;
}
return 0;
}

答案 1 :(得分:1)

只需将while((cin >> d >> x >> y >>t)!=EOF)替换为while(cin >> d >> x >> y >>t)

cin在无法阅读时会评估为假。

有关详细信息,请参阅:std::basic_ios::operator bool

  

如果流没有错误并且已准备好进行I / O,则返回true   操作。具体来说,返回!fail()

另一方面,

EOF是类型int和负值(宏常量)的整数常量表达式,不会等于false