快乐打码 2022-10-07 15:01 采纳率: 69%
浏览 149
已结题

请问我写代码有什么问题,为什么结果输出是错误的

我的代码;
#include<stdio.h>
int main(){
int A,B,C;
scanf("%d+||-||/||%d==%d",&A,&B,&C);
if(A+B==C||A-B==C||A
B==C||A/B==C){
printf("GOOD!");
}else if(A+B==C||A-B==C||A*B==C||A/B!=C){
printf("SORRY!");
}
return 0;
}
任务描述
读入一道形如A+B=C的四则运算题,正确则输出"GOOD!",错误输出"SORRY!"。

其中两个运算数为1到100范围以内的随机整数,运算符为加减乘除四种运算之一。

输入格式:
一个算式中间没有空格。

输出格式:
GOOD!或者SORRY!

输入样例:
56+23=79
输出样例:
GOOD!
输入样例:
45/21=3
输出样例:
SORRY!

展开全部

  • 写回答

3条回答 默认 最新

  • 江不平 2022-10-07 17:31
    关注

    第一个问题:scanf使用错误,你写的||符号它是不认的,你输入的就只是&后的变量,所以我们直接就写一个表达式(详见下面)
    第二个问题:比较错误,你想让输入的跟你预想的正确结果进行比较,如果正确就输出good,错误就输出sorry,可是这里需要解决的问题是怎么把你输入的表达式进行比较呢,我们其实比较的就是一个结果,那我们就把正确的结果单独算出来再与你写的表达式结果进行比较。你的问题主要是想着整个表达式进行比较了,其实并不需要,我们只需要比较结果,详见代码

    #include<stdio.h>
    int main() {
        int a, c,e,sum,sub,div,mul;
        char b,d;       //b和d表示符号                  
        printf("随机输入一个A+B形式的四则运算");
        scanf("%d%c%d%c%d", &a, &b,&c, &d,&e);   //读入数据;
        sum = a + c;
        sub = a - c;
        div = a / c;
        mul = a * c;
        if ( sum==e || sub==e || div==e || mul==e) {
            printf("GOOD!");
        }
        else {
            printf("SORRY!");
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 10月15日
  • 已采纳回答 10月7日
  • 创建了问题 10月7日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部