我纳了个闷了,为啥报错啊,报错21行

B2052 简单计算器

FengYuXinMing @ 2022-09-14 19:24:57

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a,b;
    char c;
    cin >> a >> b >> c;
    if (c == '+'){
        cout << a + b;
    }
    else if (c == '*'){
        cout << a * b;
    }
    else if (c == '-'){
        cout << a - b;
    }
    else if (c == '/'){
        if (b == 0){
            cout << "Divided by zero!";
        }
        cout << a / b;+
    }//这就是21行
    else{
        cout << "Invalid operator!";
    }
    return 0;
}

by Katz @ 2022-09-14 19:31:52

@Wildchesse 我觉得他作为问问题的人,语气也不好


by HopesandDreams @ 2022-09-14 19:31:53

@hutongyu 仁兄,您怕不是指的是RE吧。您输出÷0以后也还要除一遍啊


by EastSnowLotus @ 2022-09-14 19:31:59

事实上 21 行报错显然是 20 行那个小可爱加号


by Wildchesse @ 2022-09-14 19:32:18

况且在DEV - C++(c++的一个编译器)上运行就不报错


by HopesandDreams @ 2022-09-14 19:32:42

@PMAC 别跟他纠结了,他大概是没弄懂你谷是怎么评测的。他大概是觉得评测的结果要么AC要么CE。


by _Give_up_ @ 2022-09-14 19:33:31

楼上的楼上和楼上正解


by FengYuXinMing @ 2022-09-14 19:36:03

@114514YC 再运行一变,就是测试点3RE其他的测试点不知道去哪了


by _Give_up_ @ 2022-09-14 19:36:56

@hutongyu 最后再救你一次

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a,b;
    char c;
    cin >> a >> b >> c;
    if (c == '+'){
        cout << a + b;
    }
    else if (c == '*'){
        cout << a * b;
    }
    else if (c == '-'){
        cout << a - b;
    }
    else if (c == '/'){
        if (b == 0){
            cout << "Divided by zero!";
        }
        else cout << a / b;
    }//这就是21行
    else{
        cout << "Invalid operator!";
    }
    return 0;
}

by FengYuXinMing @ 2022-09-14 19:37:06

@114514YC 洛谷目前我知道只有: AC,WA,TLE,RE


by HopesandDreams @ 2022-09-14 19:37:14

@hutongyu 仁兄,我来跟你解释一下。首先,前面那位同学的意见是对的,只不过改完以后你也还是错的。

不过错的地方不一样。之前是编译错误,也就是评测机不知道你在干什么。改完是运行错误

之所以会运行错误是因为÷0。电脑算不出来÷0。所以会运行错误。你虽然特判了÷0,但是仍然÷了一次。


上一页 | 下一页