首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-24 
IF语句结果求教。新手求教#include iostreamusing namespace stdint main(){int a,bchar ccinab

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的值未定义。 下面输出肯定有问题} 

热点排行