| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 843 人关注过本帖
标题:使用选择语句让程序识别有两个操作符的表达式,我感觉自己写的复杂了。大家看 ...
取消只看楼主 加入收藏
blueness21
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-7-28
收藏
 问题点数:0 回复次数:3 
使用选择语句让程序识别有两个操作符的表达式,我感觉自己写的复杂了。大家看看能不
如题,一个练习题目,使用if...else和switch语句实现程序识别两个操作符的表达示.可不可以有比较简单的思路?
但是限制在只使用if..else和switch的情况下。
#include <iostream.h>
int main()
{
float a,b,c;
char oper1,oper2;
cout<<"请输入一个表达式:"<<endl;
cin>>a>>oper1>>b>>oper2>>c;
switch(oper1)
{
case '+':
{
switch(oper2)
{
case '+':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a+b+c<<endl;
break;
case '-':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a+b-c<<endl;
break;
case '*':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a+b*c<<endl;
break;
case '/':
{
if(c!=0) cout<<a<<oper1<<b<<oper2<<c<<'='<<a+b/c<<endl;
else cout<<"Error!"<<endl;
break;
}
default:
cout<<"Error!"<<endl;
}
break;
}
case '-':
{
switch(oper2)
{
case '+':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a-b+c<<endl;
break;
case '-':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a-b-c<<endl;
break;
case '*':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a-b*c<<endl;
break;
case '/':
{
if(c!=0) cout<<a<<oper1<<b<<oper2<<c<<'='<<a-b/c<<endl;
else cout<<"Error!"<<endl;
break;
}
default:
cout<<"Error!"<<endl;
}
break;
}
case '*':
{
switch(oper2)
{
case '+':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a*b+c<<endl;
break;
case '-':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a*b-c<<endl;
break;
case '*':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a*b*c<<endl;
break;
case '/':
{
if(c!=0) cout<<a<<oper1<<b<<oper2<<c<<'='<<a*b/c<<endl;
else cout<<"Error!"<<endl;
break;
}
default:
cout<<"Error!"<<endl;
}
break;
}
case '/':
{

if(b!=0)
{
{
switch(oper2)
{
case '+':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a/b+c<<endl;
break;
case '-':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a/b-c<<endl;
break;
case '*':
cout<<a<<oper1<<b<<oper2<<c<<'='<<a/b*c<<endl;
case '/':
{
if(c!=0)
cout<<a<<oper1<<b<<oper2<<c<<'='<<a/b/c<<endl;
else
cout<<"Error!"<<endl;
break;
}
default:
cout<<"Error!"<<endl;
}
}
}

}

default:
cout<<"Error!"<<endl;
}
return 0;
}

时间仓促,没有全面的调试这个程序,应该不会有大问题
搜索更多相关主题的帖子: 操作符 语句 感觉 表达 
2007-08-05 08:36
blueness21
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-7-28
收藏
得分:0 

发表了以后再看更觉得恐怖,感觉很简单的一题被我给搞成这样.....

2007-08-05 08:37
blueness21
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-7-28
收藏
得分:0 
以下是引用aipb2007在2007-8-5 10:14:18的发言:
简单看了下,你似乎没有考虑优先级的问题。

还有,你完全可以只有一次switch对四则运算处理。
可以做成函数的形式,就避免了,你的switch嵌套。

当时那个题目上也说要注意优先级的问题,但我不能理解,是算式的优先级还是算法的优先级?

另外就是我也想只用一次switch对四则运算处理,但是不知道具体该怎么做.

望指点.

2007-08-05 21:05
blueness21
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-7-28
收藏
得分:0 

恩,拷回去看,谢谢!~~

2007-08-06 12:20
快速回复:使用选择语句让程序识别有两个操作符的表达式,我感觉自己写的复杂了。 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012421 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved