好的,这就是我被要求做的事情“制作一个名为Coordinate的结构,其中包含 地球表面上一点的纬度和经度。结构也应该存储一个 坐标的标签或名称(例如,“卡尔加里”)。纬度和经度都是成员 变量应为double类型,并应以弧度为单位进行存储。 定义结构后,编写一个函数来读取标签/名称以及纬度和 单个坐标的经度,并将它们存储在随后返回的Coordinate结构中 调用功能。该功能应该以度为单位提示角度然后 将值转换为弧度(按照上面的说法)。“
这就是我写的
struct coordinate
{
double latitude;
double longitude;
string city;
};
void Readcoordinate();
int main()
{
coordinate startPt, endPt;
}
void Readcoordinate()
{
cout << "Enter Longitude(in degrees)" << endl;
cin >> startPt.latitude
>> startPt.longitude
>> startPt.city;
}
我一直在收到错误。任何帮助? 感谢
答案 0 :(得分:0)
您已在coordinate startPt, endPt;
中声明了main()
并且您正在尝试访问它们Readcoordinate(). To resolve error you should declare
坐标startPt,endPt; in
Readcoordinate()`或将它们作为参数传递。< / p>
coordinate Readcoordinate()
{
coordinate startPt;
cout << "Enter Longitude(in degrees)" << endl;
cin >> startPt.latitude
>> startPt.longitude
>> startPt.city;
return startPt;
}
或
int main()
{
coordinate startPt, endPt;
Readcoordinate(startPt);
Readcoordinate(endPt);
}
void Readcoordinate(coordinate &Pt)
{
cout << "Enter Longitude(in degrees)" << endl;
cin >> Pt.latitude
>> Pt.longitude
>> Pt.city;
}
答案 1 :(得分:0)
您的变量在main
中定义,因此其范围仅限于main
。
您需要在使用它们的函数中定义它们,或者您可以将这些变量定义为全局变量,以便可以在main
和函数中访问它们。您可能还需要在main中调用该函数。
局部变量:
void Readcoordinate();
int main()
{
Readcoordinate();
}
void Readcoordinate()
{
coordinate startPt, endPt; // Locally defined
cout << "Enter Longitude(in degrees)" << endl;
cin >> startPt.latitude
>> startPt.longitude
>> startPt.city;
}
全局变量:
coordinate startPt, endPt; // Globally defined
void Readcoordinate();
int main()
{
Readcoordinate();
}
void Readcoordinate()
{
cout << "Enter Longitude(in degrees)" << endl;
cin >> startPt.latitude
>> startPt.longitude
>> startPt.city;
}