C语言编写计算器程序无输出怎么办

#include<stdio.h>
#include<math.h>
int main(void)
{
    float dat1, dat2;
    char op;
    printf("Please enter the expression:\n");
    scanf_s("%f %c%f", &dat1, &op, &dat2);
    switch (op)
    {
    case'+':
        printf("%f + %f = %f \n", dat1, dat2, dat1 + dat2);
        break;
    case'-':
        printf("%f - %f = %f \n", dat1, dat2, dat1 - dat2);
        break;
    case'*':
        printf("%f * %f = %f \n", dat1, dat2, dat1 * dat2);
        break;
    case'x':printf("%f * %f = %f \n", dat1, dat2, dat1 * dat2);
        break;
    case'X':
        printf("%f * %f = %f \n", dat1, dat2, dat1 * dat2);
        break;
    case'/':
        printf("%f / %f = %f \n", dat1, dat2, dat1 / dat2);
        break;
    case'^':
        printf("%f ^ %f = %f \n", dat1, dat2, pow(dat1, dat2));
        break;
    default:
        printf("Invalid operator! \n");
}
return 0;
}

用scanf函数可以运行 同时注意输入数据的格式 要和你写的代码保持一致

#include<stdio.h>
#include<math.h>
int main(void)
{
    float dat1, dat2;
    char op;
    printf("Please enter the expression:\n");
    scanf("%f %c %f", &dat1, &op, &dat2);
    switch (op)
    {
    case'+':
        printf("%f + %f = %f \n", dat1, dat2, dat1 + dat2);
        break;
    case'-':
        printf("%f - %f = %f \n", dat1, dat2, dat1 - dat2);
        break;
    case'*':
        printf("%f * %f = %f \n", dat1, dat2, dat1 * dat2);
        break;
    case'x':printf("%f * %f = %f \n", dat1, dat2, dat1 * dat2);
        break;
    case'X':
        printf("%f * %f = %f \n", dat1, dat2, dat1 * dat2);
        break;
    case'/':
        printf("%f / %f = %f \n", dat1, dat2, dat1 / dat2);
        break;
    case'^':
        printf("%f ^ %f = %f \n", dat1, dat2, pow(dat1, dat2));
        break;
    default:
        printf("Invalid operator! \n");
}
return 0;
}

img

scanf_s("%f %c%f", &dat1, &op, &dat2);
改为:
scanf_s("%f %c%f", &dat1, &op, 1,&dat2);
scanf_s输入字符或字符串时,必须指定其最大长度。字符输入后面要加一个1

满意请点击采纳支持一下,注意只能采纳一个回答哦