条件语句,分段函数题

问题遇到的现象和发生背景

请问为什么输入0后输出错误,其他都是对的
题目为
【问题描述】有一分段函数如下,试输入x,输出y的值

img

【输入形式】键盘输入x的值
【输出形式】输出y的值
【样例输入】1
【样例输出】-1
【样例说明】
【评分标准】

用代码块功能插入代码,请勿粘贴截图
#include 
#include 
using namespace std;
int main()
{
    double x;
    double y;
    cin>>x;
    if((x>=-1)&&(x<=1))
    
    y=-x;
    

    else if(((x>1)&&(x<=2))||((x<-1)&&(x>=-2)))
    {if((x>1)&&(x<=2))
    {y=sin(x)+1/x;}
    else if((x<-1)&&(x>=-2))
    {y=sin(-x)-1/x;}}
    else
    y=1/(1+x*x*x);
    cout<return 0;
}

运行结果及报错内容
PS C:\Users\HUAWEI>  & 'c:\Users\HUAWEI\.vscode\extensions\ms-vscode.cpptools-1.12.4-win32-x64\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-rswhhauo.rhp' '--stdout=Microsoft-MIEngine-Out-bdbfi2yr.j5f' '--stderr=Microsoft-MIEngine-Error-c5izth4h.1pr' '--pid=Microsoft-MIEngine-Pid-dl0hniw3.bi0' '--dbgExe=C:\mingw64\bin\gdb.exe' '--interpreter=mi'
0
-4

if((x>=-1)&&(x<=1))

y=-x;

这和分段函数不一样啊。
改为y = fabs(x-2)-2;

输出呢?
打印的输出是哪个?