这个有什么呀,好苦恼呀。

#include<stdio.h>
void main()
{
float a, b, c;
char op;
scanf_s("%f%c%f=%f", &a, &op, &b, &c);
switch(op)
{
case '+':if (a + b == c) printf("Perfect\n");
else printf("错误"); break;
case '-':if(a-b==c)printf("Perfect\n");
else printf("错误 "); break;
}
return 0;

}

两个错误,修改如下


#include<stdio.h>
void main()
{
    float a, b, c;
    char op;
    scanf_s("%f %f %f %c", &a, &b, &c, &op);  //scanf内不要加其他符号,最好将字符放在后面
    switch (op)
    {
    case '+':if (a + b == c) printf("Perfect\n");
            else printf("错误"); break;
    case '-':if (a - b == c)printf("Perfect\n");
            else printf("错误 "); break;
    }
    //main函数是void,不需要return
}

img

switch选择语句中放的变量只能是整型,而不能是字符型,可以将1认为是‘+’, 2认为是‘-’......只要使用整型数字代表就行了