IF语句结果求教。
新手求教
#include <iostream>
using namespace std;
int main()
{
int a,b;
char c;
cin>>a>>b>>c;
if(c=='+')
{
cout<<a<<c<<b<<'='<<a+b<<endl;
}
else
{
if(c='-')//c='-’和c=='-' 效果一样。
{
cout<<a<<c<<b<<'='<<a-b<<endl;
}
else
{
if(c=='*')
{
cout<<a<<c<<b<<"="<<a*b<<endl;//等于号是单引号还是双引号对结果无影响。
}
else
{
if(c=='/'&&b!=0)
{
cout<<a<<c<<b<<"="<<a/b<<endl;
}
else
{
cout<<"错误"<<endl;
}
}
}
}
system("pause");
return 0;
}
DEV下编译能通过,但最后一个分支“错误”的输出结果下面一行为啥总有一个数字“2”。 if行无论用“=”还是“==”对输出结果没影响,这是在IF的假设中,又不是真的立马赋值,此时他们的含义真的相同吗 ?
[解决办法]
你输入的值是什么?
没走else分支吧
[解决办法]
‘=’这个是附值,这个操作会将c强行附值为‘=’字符,这样的话结果与你直接将c附成“==”是一样的。
if(c='=')---将c附成’=‘,
if(c=='=')---判断c是否是’=‘。
[解决办法]
另外除了最后一个else之外,其他的换成 else if
[解决办法]
[解决办法]
那个2 是cout<<s<<endl输出的吧
你没有为s赋初值
[解决办法]
[解决办法]
[解决办法]
------解决方案--------------------
[解决办法]
- C/C++ code
if(y==e){cout<<"错误"<<endl; 这句 s的值未定义。 下面输出肯定有问题}