读书人

IF语句结果求教。该怎么解决

发布时间: 2012-03-24 14:00:46 作者: rapoo

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
[解决办法]

探讨

‘=’这个是附值,这个操作会将c强行附值为‘=’字符,这样的话结果与你直接将c附成“==”是一样的。
if(c='=')---将c附成’=‘,
if(c=='=')---判断c是否是’=‘。

[解决办法]
那个2 是cout<<s<<endl输出的吧

你没有为s赋初值
[解决办法]
探讨
发错了第一个问题的是
#include <iostream>
using namespace std;
int main()
{
int y,e,s;
cin>>y>>e;
if(y<e)
{
s=y;

}
else
{
if(y==e)
{
cout<<"错误"<<endl;//为啥结果在“错误”的下边还有个“2……

[解决办法]
探讨

收回自己在顶楼说的“=”“==”在if下等同的结论,刚刚再测试,凡是将“==”改成“=”的,后面的IF句子都无效,无论*还是/结果都是减的结果,头几次测试就没发现这问题,难不成是重启了一次软件的缘故?感到有些混乱了。

[解决办法]
探讨

引用:

那个2 是cout<<s<<endl输出的吧

你没有为s赋初值

自己随便赋了几个整数值,但结果便是由“错误”下面跟的2变为了自己赋的值。难道需要自己赋给隐形字符,没这么复杂吧? 请再指教。

------解决方案--------------------


探讨

引用:

引用:

收回自己在顶楼说的“=”“==”在if下等同的结论,刚刚再测试,凡是将“==”改成“=”的,后面的IF句子都无效,无论*还是/结果都是减的结果,头几次测试就没发现这问题,难不成是重启了一次软件的缘故?感到有些混乱了。

现在什么问题。
眼下那个式子只能用“==”了,所以自己的第二……

[解决办法]
C/C++ code
if(y==e){cout<<"错误"<<endl;  这句 s的值未定义。 下面输出肯定有问题} 

读书人网 >C++

热点推荐