1
我想将纬度和经度从度,分,秒转换为十进制度数。我已经正确地转换了数字,但我遇到了转换符号的麻烦。当我输入经纬度的数字39 57 21和经度的-75 11 14时,它会正确转换为(39.9558,75.1872),但我的符号计算公式无法正常工作。我用细齿梳检查了代码,但似乎无法在我的公式中找到错误。我给出的公式是:sign =(2x)/(abs(x)+1)。我在下面列出了我的代码。任何帮助将不胜感激。C++中的符号计算
#include <iomanip>
#include <cmath>
#include <iostream>
#include <string>
using namespace std;
int main()
{
int user_degrees_latitude, user_minutes_latitude, user_seconds_latitude,
user_degrees_longitude, user_minutes_longitude, user_seconds_longitude,
sign_latitude, sign_longitude;
double total_minutes_latitude, total_degrees_latitude,
total_minutes_longitude, total_degrees_longitude, final_latitude,
final_longitude;
const double sixtieth = (1./60);
cout << "Input latitude in degrees, minutes, seconds:";
cin >> user_degrees_latitude >> user_minutes_latitude >>
user_seconds_latitude;
cout << "Input longitude in degrees, minutes, seconds:";
cin >> user_degrees_longitude >> user_minutes_longitude >>
user_seconds_longitude;
total_minutes_latitude =
(user_minutes_latitude + ((sixtieth) * user_seconds_latitude));
total_degrees_latitude =
(abs(user_degrees_latitude) + ((sixtieth) * total_minutes_latitude));
total_minutes_longitude =
(user_minutes_longitude + ((sixtieth) * user_seconds_longitude));
total_degrees_longitude =
(abs(user_degrees_longitude) + ((sixtieth) * total_minutes_longitude));
sign_latitude =
(2 * (total_degrees_latitude))/((abs(total_degrees_latitude)) + 1);
sign_longitude =
(2 * (total_degrees_longitude))/((abs(total_degrees_longitude)) + 1);
final_latitude = (sign_latitude * total_degrees_latitude);
final_longitude = (sign_longitude * total_degrees_longitude);
cout << user_degrees_latitude << " deg " << user_minutes_latitude << "\' "
<< user_seconds_latitude << "\" latitude, " << user_degrees_longitude
<< " deg " << user_minutes_longitude << "\' " << user_seconds_longitude
<< "\"";
cout << " is (" << total_degrees_latitude << "," << total_degrees_longitude
<< ")" << endl;
return 0;
}
一个简短的测试案例,而不是所有的代码将是很好的。 – Borgleader
那么,也许你的公式错了? – OldProgrammer
这与您之前发布的代码基本相同。你会发现使用你的调试器可以帮助你,而不是要求你为你调试它。 –