我在SPOJ上解决了这个问题。
http://www.spoj.com/problems/NECSTASY/
这是我的代码。
#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;
}
我遇到的问题是没有给出测试用例。
我该如何处理?
答案 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
。