无法在C++中计算正确答案

无法在C++中计算正确答案,c++,C++,这是我的实验室程序。我必须应用两个公式并打印两个公式的答案。第一个是这一行: cout<<"Hypoteneus is: " <<sqrt((x*x)+(y*y)) <<endl; 1/2*x*y应为1.0/2.0*x*y或0.5*x*y。 否则,编译器将理解int/int,结果将是int,因此预期的0.5将变为0。1/2*x*y应为1.0/2.0*x*y或0.5*x*y。 否则,编译器将理解int/int,结果将为int,因此预期的0.5将变为0。1/2指

这是我的实验室程序。我必须应用两个公式并打印两个公式的答案。第一个是这一行:

cout<<"Hypoteneus is: " <<sqrt((x*x)+(y*y)) <<endl;
1/2*x*y应为1.0/2.0*x*y或0.5*x*y。 否则,编译器将理解int/int,结果将是int,因此预期的0.5将变为0。

1/2*x*y应为1.0/2.0*x*y或0.5*x*y。 否则,编译器将理解int/int,结果将为int,因此预期的0.5将变为0。

1/2指定整数算术,将结果截断为最接近的整数,即零

对于具有正确值的浮点常量,使用0.5f或1.0f/2.0f。或者除以二而不是乘以一半。

1/2指定整数算术,将结果截断为最接近的整数,即零


对于具有正确值的浮点常量,使用0.5f或1.0f/2.0f。或者除以二而不是乘以一半。

fflushstdin是直接的未定义行为。删除它。这也是不必要的。调试提示:如果你不明白为什么一行没有给出你期望的答案,把它分成小块打印出来,找出哪里出了问题:cout@chris yes我想这会解决我的问题problem@user2978059,不,任何使用fflusstdin的方法都是错误的。如果你想暂停程序,你真的不应该用它污染代码。从命令行运行程序。在main的末尾放置一个断点。告诉IDE在执行后暂停。有几个选项不会改变代码。如果您绝对必须这样做,那么使用std::cin.ignore仅当存在任何输入时才忽略剩余的输入,并且std::cin.get作为getch.fflushstdin的等价物是直接的未定义行为。删除它。这也是不必要的。调试提示:如果你不明白为什么一行没有给出你期望的答案,把它分成小块打印出来,找出哪里出了问题:cout@chris yes我想这会解决我的问题problem@user2978059,不,任何使用fflusstdin的方法都是错误的。如果你想暂停程序,你真的不应该用它污染代码。从命令行运行程序。在main的末尾放置一个断点。告诉IDE在执行后暂停。有几个选项不会改变代码。如果您绝对必须这样做,那么使用std::cin.ignore仅当存在任何输入时才忽略剩余的输入,并且std::cin.get相当于getch。
cout<<"Area is: " <<a*x <<((1/2)*x*y);
int main ()
{
    float x, y, a=122;
    cout<<"Enter x and y.\n";
    cin>>x >>y;
    cout<<"Hypoteneus is: " <<sqrt((x*x)+(y*y)) <<endl;
    fflush(stdin);
    cout<<"Area is: " <<a*x <<((1/2)*x*y);
    getch();
    return 0;
}