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

对两个整数进行乘除求余。代码在编辑器上显示没问题,但是和答案始终不一致。

jingu 发布于 2020-04-09 11:10, 2334 次点击
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
    char sign;
    int x,y;
    cin>>x>>y;
    if(sign='*')
    cout<<x<<" * "<<y<<" = "<<x*y<<endl;
    else if(sign='/')
    cout<<x<<" / "<<y<<" = "<<x/y<<endl;
    else if(sign='%')
    cout<<x<<" Mod "<<y<<" = "<<x%y<<endl;
    else
    cout<<"运算符输入错误!"<<endl;
    return 0;
}
只有本站会员才能查看附件,请 登录
8 回复
#2
雪影辰风2020-04-09 11:17
请注意
在C++里,'='表示的是赋值,不是等于,等于是'=='(双等号)!!!
在C++里,'='表示的是赋值,不是等于,等于是'=='(双等号)!!!
在C++里,'='表示的是赋值,不是等于,等于是'=='(双等号)!!!

另外,你的那个sign变量的值都没有输入的,有什么用?
细节问题请好好注意!
#3
万致远醉帥2020-04-14 11:23
sign连初始化都没有,怎么会让你通过?
#4
雪影辰风2020-04-14 12:05
回复 3楼 万致远醉帥
讲的没错,不过楼主问的是结果问题,跟初始化好像没关系
主要是它的这个sign变量定义了以后,根本没给他任何值
而且它的等号也写成了赋值号,进入if以后会做完赋值操作,然后返回逻辑真,于是if就只会卡在第一个if就不会往下做了
【这里还是建议各位,在变量定义的时候或者使用前进行初始化,在Windows上是默认定义就写0进入内存,而其他像Linux系统就会随机写入内存】
#5
万致远醉帥2020-04-15 11:24
不是呀,我用VS2019,没初始化就不能编译通过
#6
万致远醉帥2020-04-15 11:28
一没初始化就严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C4700    使用了未初始化的局部变量“qq”    Project29    C:\Users\sz\source\repos\Project29\Project29\源.cpp    5   
程序代码:
#include<iostream>
int main()
{
    int qq;
    std::cout << qq;
}
#7
雪影辰风2020-04-15 13:29
回复 6楼 万致远醉帥
捋一捋,你定义了一个qq,然后你什么数值都没给它,要它干什么……
何况楼主的做法是
    char sign;
    if(sign='*')
    ...
if语句里面已经给sign赋值了,就相当于初始化了。。。
这跟初始化能有关系?
#8
lin51616782020-04-15 13:39
回复 5楼 万致远醉帥
你记错了 没初始化不会有什么问题
读没初始化的变量才会有问题
#9
万致远醉帥2020-04-15 16:11
回复 8楼 lin5161678
谢谢
1