Vergil_yamato
Vergil_yamato
采纳率0%
2021-02-26 21:13

c语言第二次judge调用为啥被跳过了一样

#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;
    double z = 0.0;
    double result2 = 0;
    char flag1;
    
    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;
        
        
        scanf("%c%lf", &flag, &z);
        judge(flag, &result1, &z, &result2);    
        if(error==1)
        {
            ling=0;
        
        }
        else
        {
            printf("%.3lf%c", result2, flag);
            ling=1;
        }            
    }
    return 0;
}
            
     
 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答