输出函数对应的值时输出了之前输出的结果

add(a,b)=a+b; sub(a,b)=a-b; mul(a,b)=a*b; div(a,b)=a/b
先输入运算次数,再输入函数,最后输出函数对应顺序的值,但输入第五个算式(sub(3,4))时输出不对,哪里错了?怎样改正?

 #include
int add(int a,int b)
{
    int c;
    c=a+b;
    return c;
}
int sub(int a,int b)
{
    int c;
    c=a-b;
    return c;
}
int mul(int a,int b)
{
    int c;
    c=a*b;
    return c;
}
float div(float a,float b)
{
    float c;
    c=a/b;
    return c;
}
int main()
{
    int n,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        int a,b;
        float x,y;
        scanf(" add(%d,%d)",&a,&b);
        add(a,b);
        printf("%d\n",add(a,b));
        scanf(" mul(%d,%d)",&a,&b);
        mul(a,b);
        printf("%d\n",mul(a,b));
        scanf(" div(%f,%f)",&x,&y);
        if(y!=0)
        div(x,y),
        printf("%.2f\n",div(x,y));
        if(y==0)printf("error");
        scanf(" sub(%d,%d)",&a,&b);
        sub(a,b);
        printf("%d\n",sub(a,b));
    }
    return 0;
}


img

我的思路 :可能是缓冲区的问题,因为1.67,-1重复出现

你这加减乘除顺序是死的啊。怎么弟二遍你先输入的是sub呢

这代码我都无力吐槽
你先别着急自嗨,先把自己写的代码看懂了,看看到底写了个什么奇葩逻辑