快乐打码 2022-10-07 23:01 采纳率: 71.4%
浏览 145
已结题

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

我的代码;
#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-08 01: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月16日
  • 已采纳回答 10月8日
  • 创建了问题 10月7日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址