C++ 当计算放在参数输入之前的代码中时,为什么计算不起作用?
x1=7、x2=3、y1=12、y2=9的正确答案应该是5。这个代码给了我5.9。。。我想不出是什么问题C++ 当计算放在参数输入之前的代码中时,为什么计算不起作用?,c++,C++,x1=7、x2=3、y1=12、y2=9的正确答案应该是5。这个代码给了我5.9。。。我想不出是什么问题 #include <iostream> #include <cstdlib> #include <cmath> using namespace std; int main() { int x1, x2, y1, y2; double distance; distance = sqrt(pow((x2-x1), 2) + po
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{
int x1, x2, y1, y2;
double distance;
distance = sqrt(pow((x2-x1), 2) + pow((y2-y1), 2));
cout << "Enter x1: ";
cin >> x1;
cout << "Enter x2: ";
cin >> x2;
cout << "Enter y1: ";
cin >> y1;
cout << "Enter y2: ";
cin >> y2;
cout << "The distance between two points is: " << distance << endl;
return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
int-x1,x2,y1,y2;
双倍距离;
距离=sqrt(功率((x2-x1),2)+功率((y2-y1),2));
cout>x1;
cout>x2;
cout>y1;
cout>y2;
您的期望是:
distance = sqrt(pow((x2-x1), 2) + pow((y2-y1), 2));
将使用用户输入不正确的变量值。执行该行时,变量x1
等未初始化。因此,程序具有未定义的行为
将该行移到读取y2的行之后
// Not good to be here.
// distance = sqrt(pow((x2-x1), 2) + pow((y2-y1), 2));
cout << "Enter x1: ";
cin >> x1;
cout << "Enter x2: ";
cin >> x2;
cout << "Enter y1: ";
cin >> y1;
cout << "Enter y2: ";
cin >> y2;
distance = sqrt(pow((x2-x1), 2) + pow((y2-y1), 2));
//呆在这里不太好。
//距离=sqrt(功率((x2-x1),2)+功率((y2-y1),2));
cout>x1;
cout>x2;
cout>y1;
cout>y2;
距离=sqrt(功率((x2-x1),2)+功率((y2-y1),2));
您的期望是:
distance = sqrt(pow((x2-x1), 2) + pow((y2-y1), 2));
将使用用户输入不正确的变量值。执行该行时,变量x1
等未初始化。因此,程序具有未定义的行为
将该行移到读取y2的行之后
// Not good to be here.
// distance = sqrt(pow((x2-x1), 2) + pow((y2-y1), 2));
cout << "Enter x1: ";
cin >> x1;
cout << "Enter x2: ";
cin >> x2;
cout << "Enter y1: ";
cin >> y1;
cout << "Enter y2: ";
cin >> y2;
distance = sqrt(pow((x2-x1), 2) + pow((y2-y1), 2));
//呆在这里不太好。
//距离=sqrt(功率((x2-x1),2)+功率((y2-y1),2));
cout>x1;
cout>x2;
cout>y1;
cout>y2;
距离=sqrt(功率((x2-x1),2)+功率((y2-y1),2));
你的程序表现出未定义的行为,因为对非初始化变量进行计算(即在读取值之前计算)。考虑从A学习而不是随机编码。所以我应该把公式放在读取值的下面。这个问题的标题需要重新表述。“不能解决这个问题”。当你编写一个程序,你不写数学方程,但是一个接一个执行的语句,你不能改变任何你想要的顺序。考虑使用<代码> x*x<代码>而不是<代码> POW(x,2)。
。通常更准确、更快。由于对未初始化的变量进行计算(即在读取值之前进行计算),程序会显示未定义的行为考虑从A学习而不是随机编码。所以我应该把公式放在读取值下面。这个问题的标题需要重新表述。“不能弄清楚这个问题”。当你编写一个不写数学方程的程序时,绝对不能说,但是一个一个地执行的语句,所以你不能改变任何你想要的顺序。考虑使用<代码> x*x < /代码>而不是<代码> PoW(x,2)。通常它更准确和更快。