hur.cn - 华软网

 热门搜索

switch语句为什么没有执行?

  作者:未知    来源:网络    更新时间:2011/8/28
#include<iostream>
using namespace std;
#include<math.h>
#include<stdio.h>

void  main()
{
char a;
int b,c,result;
cin>>b>>c;
a=getchar();

switch(a)

case '+': result=(b+c);break;
case '-': result=(b-c);break;
case '*': result=b*c;break;
case '/': result=b/c;break;
default:break;
}
cout<<result<<endl;
}
switch语句为什么没有执行?
---华软 网友回答---
引用楼主 xstrivefor 的回复:
#include<iostream>
using namespace std;
#include<math.h>
#include<stdio.h>

void main()
{
char a;
int b,c,result;
cin>>b>>c;
a=getchar();

switch(a)

case '+': result=(b+c);break;
cas……


#include<iostream>
using namespace std;
#include<math.h>
#include<stdio.h>

void main()
{
char a;
int b,c,result;
cin>>b>>c>>a;

switch(a)
{  
case '+': result=(b+c);break;
case '-': result=(b-c);break;
case '*': result=b*c;break;
case '/': result=b/c;break;
default:break;
}
cout<<result<<endl;
}
---华软网友回复---
或者改成

#include<iostream>
using namespace std;
#include<math.h>
#include<stdio.h>

void main()
{
char a;
int b,c,result;

a=getchar();
cin>>b>>c;//>>a;

switch(a)
{  
case '+': result=(b+c);break;
case '-': result=(b-c);break;
case '*': result=b*c;break;
case '/': result=b/c;break;
default:break;
}
cout<<result<<endl;
}

你原来的代码应该是a取到了回车键,结果执行了default分支了

---华软网友回复---
你原来的代码应该是a取到了回车键,结果执行了default分支了

---华软网友回复---
楼主,我对流那个概念不懂,但是这个语句不是没有执行switch语句,是执行了default,因为a的值为32,也就是空格,所以执行了default,如果你输入 2 3+就可以执行了,getchar是获取了输入b之后那个字符。再为什么我就不懂了
---华软网友回复---
引用楼主 xstrivefor 的回复:
#include<iostream>
using namespace std;
#include<math.h>
#include<stdio.h>

void  main()
{
char a;
int b,c,result;
cin>>b>>c;
a=getchar();

switch(a)

case '+': result=(b+c);break;
ca……

你怎么输入的?
---华软网友回复---
输入错了
---华软网友回复---
谢谢大家啊,你们的讲解让我知道了原来代码的错误在哪里。我后来试出来了,下面也可以:
#include<iostream.h>
#include<iostream>
//using namespace std;
#include<math.h>
#include<stdio.h>

void  main()
{
char a;
long double b,c,result;
cin>>b>>c;
a=getchar();

switch(a)

case '+': result=(b+c);break;
case '-': result=(b-c);break;
case '*': result=b*c;break;
case '/': result=b/c;break;
default:break;
}
cout<<result<<endl;
}
只是输入时,要按下面格式
2 3
+
才行。主要还是输入的格式问题吧。

     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。