c语言第二次函数调用为啥不管用了呢?

#include<stdio.h>

int error = 0;

void judge(char flag, double *x, double *y, double *result)
{
    if(flag=='+')
            *result = *x+ *y;    
    else if(flag=='-')
            *result = 1;
    else if(flag=='*')
            *result = (*x) * (*y);
    else if(flag=='/')
        {
            if(*y==0)
            {
                printf("输入格式有误\n"); 
                error = 1;
            }
            else
                *result = *x / *y;    
        }        
}

int main()
{
    double x=0.0, y=0.0, result=0, result1=0;
    int n = 1, sun=0;
    char flag;
    
    while(1)
    {
        int ling = 0;
        error = 0;
        printf("请输入算式\n");
        scanf("%lf %c %lf", &x, &flag, &y);
        judge(flag, &x, &y, &result);
            
        if(error==1)
        {
            ling=0;
        
        }
        else
        {
            printf("%.3lf", result);
            ling=1;
        }
        result1 = result;
        
        double z = 0.0;
        double result2 = 0;
        char flag1;
        
        
        
        while(ling)
        {
        
            scanf("%c", &flag1);
            if(flag1=='=')
            {
                printf("运算结果为%.3lf\n", result1);
                
                break;
            }
            else 
            {
                scanf("%lf", &z);
                judge(flag1, &result1, &z, &result2);
                
                
                if(error==1)
                {
                    ling = 0;
                    break;
                }
                else
                {
                    printf("%.3lf", result2);
                    result1 = result2;
                
                }
            }
        }      
    }
    return 0;
}
            
     
 

>c语言第二次函数调用为啥不管用了呢?

请说明你输入了什么数据, 具体 ‘第二次’ 在哪里?

代码我运行了一下,第二次是可以用的,调用Judge没问题