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

use*_*059 1 c++

这是我的实验室计划.我必须应用两个公式并打印两者的答案.第一个是这一行:

cout<<"Hypoteneus is: " <<sqrt((x*x)+(y*y)) <<endl;
Run Code Online (Sandbox Code Playgroud)

这个工作.问题在于:

cout<<"Area is: " <<a*x <<((1/2)*x*y);
Run Code Online (Sandbox Code Playgroud)

问题是它将答案打印为0.我将a*x测试用于测试,但是表达式(1/2)*x*y将0呈现为答案.我输入x为1和y2.请帮助.

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;
}
Run Code Online (Sandbox Code Playgroud)

Tel*_*kis 9

((1/2)*x*y)应该是((1.0/2.0)*x*y)(0.5*x*y).
否则,编译器将理解int/int,结果将是int您的预期0.5将成为0.