Serei623 2021-03-25 21:49 采纳率: 37.5%
浏览 38

swtch使用过程中出现的格式错误怎么解决?

输入格式:

只有一行,依次为整数a、操作符op、和整数b,a、op、b中间有一个空格分隔。其中-10000<a,b<10000,操作符op为“+”、“-”、“*”、“/”、和“%”之一。。

输出格式:

只有一行,为a、b两个数通过op的计算结果。比如,输入为“1 + 2”,则计算1和2的和并输出“1 + 2 = 3”。 注意:当操作符op为“/”或“%”,且b为0时,算式无效,此时,程序输出一个单词:Invalid。

#include<stdio.h>
int main()
{
    int a,b,c;
    char op;
    scanf("%d %c %d",&a,&op,&b);
    switch(op)
    {
        case '+':
            printf("%d + %d = %d",a,b,a+b);
            break;
        case '-':
            printf("%d - %d= %d",a,b,a-b);
            break;
        case'*':
            printf("%d * %d= %d",a,b,a*b);
            break;
        case '/':
            if(0==b)
            printf("Invalid");
            else
            printf("%d / %d= %d",a,b,a/b);
            break;
        case '%':
            if(0==b)
            printf("Invalid");
            else
            printf("%d %% %d= %d",a,b,a%b);
            break;
    }
    return 0;
}
 

这个是我写的代码,提交显示格式错误,请问大佬们错在哪里呀

  • 写回答

3条回答 默认 最新

  • 关注

    你的变量c声明了,但没有使用。

    代码我重新格式化了一下,看看行不行

    #include <stdio.h>
    
    int main() {
        int a, b;
        char op;
        scanf("%d %c %d", &a, &op, &b);
        switch (op) {
            case '+':
                printf("%d + %d = %d", a, b, a + b);
                break;
            case '-':
                printf("%d - %d = %d", a, b, a - b);
                break;
            case '*':
                printf("%d * %d = %d", a, b, a * b);
                break;
            case '/':
                if (0 == b)
                    printf("Invalid");
                else
                    printf("%d / %d = %d", a, b, a / b);
                break;
            case '%':
                if (0 == b)
                    printf("Invalid");
                else
                    printf("%d %% %d = %d", a, b, a % b);
                break;
        }
        return 0;
    }
    
    评论

报告相同问题?