计算器程序中的错误
Errors in the calculator program
我正在使用一个程序,该程序将计算地球表面两个地理点之间的距离。我是C++的新手,如果我的英语不好,我很抱歉
关于如何将底部程序的内容转换为顶部程序而不会出错,有什么建议吗?
这个程序不起作用。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main ()
double getdistance(double x1,double y1,double x2,double y2)
{
const double PI = 3.1415927;
double radius, sum;
int exit = 1;
char choice;
while (exit == 1)
{
cout << "**** Calculate Program **** nn"
<< "1. Volumen"
<< "2. Divn"
<< "3. Calculate two geographical pointsn"
<< "4. Workingnn"
<< "5. Quit programnn";
cout << "Choose one of the options and write it here: ";
cin >> choice;
switch (choice)
{
//
case '1':
float volume (float radius);
{
cout << "radius you want to calculate: " << endl;
cin >> radius;
sum = 4.0/3.0 * PI * pow (radius, 3);
cout << "Volume: " << sum << endl;
}
break;
//
case '2':
cout<<"div n";
break;
//
case '3':
radius=6371; // radius km
double pi=3.14159265;
double x1,y1,x2,y2;
// X og Y coords
x1=(x1/180)*pi;
y1=(y1/180)*pi;
x2=(x2/180)*pi;
y2=(y2/180)*pi;
// if else
if (x1==x2 && y1==y2)
return 0;
else
{
if ((sin(x2)*sin(x1)+cos(x2)*cos(x1)*cos(y2-y1))>1)
return radius*acos(1.0);
else
return radius*acos(sin(x2)*sin(x1)+cos(x2)*cos(x1)*cos(y2-y1));
//
double x1,y1,x2,y2;
cout<<"Write the coords you like to calculate distance from: n";
cin>>x1>>y1;
cin>>x2>>y2;
cout<<"distance in km : n";
cout<<getdistance(x1,y1,x2,y2)<<endl;
return 0;
}
break;
case '4':
cout<<"working n";
break;
//
case '5':
exit = 0;
break;
default:
exit = 0;
cout << "ERROR!";
} // Switch quit
} // While quit
return 0;
}
这是一个有效的程序,但我必须把它放在上面程序的案例3中。
# include <iostream>
# include <cstdio>
# include <cmath>
using namespace std;
double getdistance(double x1,double y1,double x2,double y2)
{
double radius;
radius=6371; // radius km
double pi=3.14159265;
// X og Y coord
x1=(x1/180)*pi;
y1=(y1/180)*pi;
x2=(x2/180)*pi;
y2=(y2/180)*pi;
if (x1==x2 && y1==y2)
return 0;
else
{
if ((sin(x2)*sin(x1)+cos(x2)*cos(x1)*cos(y2-y1))>1)
return radius*acos(1.0);
else
return radius*acos(sin(x2)*sin(x1)+cos(x2)*cos(x1)*cos(y2-y1));
}
}
int main()
{
double x1,y1,x2,y2;
cout<<"Write the coords you like to calculate distance from: n";
cin>>x1>>y1;
cin>>x2>>y2;
cout<<"distance in km : n";
cout<<getdistance(x1,y1,x2,y2)<<endl;
return 0;
}
程序看起来很好。至于switch语句,它们只适用于整数或单字符值。switch
不比较字符串或浮点数。也许公布备选方案的完整代码将有助于识别问题。
编辑
int main ()
double getdistance(double x1,double y1,double x2,double y2)
{
这是错误的。当您声明函数时,您必须在main
之前声明它们,并在main
之前或之后定义它们,尽管传统上您会在之后定义它们。
即
//#include directives
double getdistance(double x1,double y1,double x2,double y2);
int main() {
// code for main()
}
double getdistance(double x1,double y1,double x2,double y2) {
//code for your function
}
相关文章:
- 程序崩溃并显示"std::out_of_range"错误
- xmake总是报告:错误:无法获取cxx的程序,为什么
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 分段错误当我试图运行程序时出错
- 显示错误输出的简单数组排序程序
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 为什么程序在 c++ 中迭代 emtpy 向量时会抛出运行时错误
- 在气泡排序程序中未声明错误功能
- 我在c ++矩阵计算器程序中找不到错误
- 叮当格式化程序多行格式配置错误
- 全局向量导致 C++ 程序结束时出现段错误
- 运行时间错误:程序跳过提示,以获取第二名和第三个名称
- Glibc 2.7 配置错误程序太旧
- 运行时错误:程序已停止响应
- OpenCV for Android:在 PATH 中找不到错误程序"sh"
- C++中的 scanf 错误 - 程序没有响应
- c++语法错误:程序以非零状态退出
- 运行时错误C++程序:检测到glibc,munmap_chunk(),指针无效
- libxml2错误程序c++