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语句为什么没有执行?
---华软 网友回答---
#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之后那个字符。再为什么我就不懂了
---华软网友回复---
你怎么输入的?
---华软网友回复---
输入错了
---华软网友回复---
谢谢大家啊,你们的讲解让我知道了原来代码的错误在哪里。我后来试出来了,下面也可以:
#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
+
才行。主要还是输入的格式问题吧。
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。
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语句为什么没有执行?
---华软 网友回答---
#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之后那个字符。再为什么我就不懂了
---华软网友回复---
你怎么输入的?
---华软网友回复---
输入错了
---华软网友回复---
谢谢大家啊,你们的讲解让我知道了原来代码的错误在哪里。我后来试出来了,下面也可以:
#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
+
才行。主要还是输入的格式问题吧。
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。
- 上一篇文章: 怎样使对话框中较小的图片控件放入较大的图片?
- 下一篇文章: 怎么才能设置客户区大小呢?