注册 登录
编程论坛 C++教室

这个是怎么回事,为什么会这样输出,求各位大神帮助!

DanielXin 发布于 2018-07-12 19:21, 1522 次点击
#include <iostream>
using namespace std;
int main() {
    int a,b;
    char n;
    cin >> a >> b >> n;
    if(n = '/' && b == 0) {
        cout << "Divided by zero!" << endl;
        return 0;
    }
    if(n == '+') {
        cout << a+b << endl;
    }else if(n == '-') {
        cout << a-b << endl;
    }else if(n == '*') {
        cout << a*b << endl;
    }else if(n == '/') {
        cout << a/b << endl;
    }else{
        cout << "Invalid operator!" << endl;
    }
   

return 0;
}

运行输入样例:1 2 +
本应输出:3
实际输出:Invalid operator!
求大神帮忙看看哪里的问题
4 回复
#2
Jonny02012018-07-12 21:58
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2018-7-12 22:01编辑过]

#3
yangfrancis2018-07-12 22:42
if(n = '/' && b == 0) 这里是不是想写双等号?
#4
小虫笨2018-07-12 22:53
程序代码:
#include <iostream>
using namespace std;
int main() {
    int a, b;
    char n;
    cin >> a >> b >> n;
    if (n = '/' && b == 0) //这里if (n == '/' && b == 0)
    {
        cout << "Divided by zero!" << endl;
    }
    if (n == '+') {
        cout << a + b << endl;
    }
    else if (n == '-') {
        cout << a - b << endl;
    }
    else if (n == '*') {
        cout << a*b << endl;
    }
    else if (n == '/') {
        cout << a / b << endl;
    }
    else{
        cout << "Invalid operator!" << endl;
    }

    system("pause");
    return 0;
}
#5
天问轩辕2018-07-18 20:50
应该这样写if(n==‘/’&&b==0)
1