请教一个关于跳出循环的问题!大家帮帮我,我是新手!

gg137zeus 2005-10-10 03:53:21
下面有一个程序是模拟计算器完成四则运算的!
程序如下:
#include<iostream.h>
void main(void){
float x,y,sum;
char op1,op;
sum=0;y=0;
op1=' ';
cout<<"输入四则运算的计算式:";
cin>>x>>op;
while(op!='=')
{

cin>>y;
switch(op)
{
case '+':
case '-':
switch(op1)
{
case ' ':sum=x;break;
case '+':sum+=x;break;
case '-':sum-=x;break;
}
op1=op;x=y;
break;
case '*':x*=y;break;
case '/':if(y){x/=y;break;}
else{
cout<<"除数不能为零!";
goto end;}
default:cout<<"非法的运算符!";
goto end;

}
cin>>op;
}//while
switch(op1)
{
case ' ':sum=x;break;
case '+':sum+=x;break;
case '-':sum-=x;break;
}
cout<<"="<<sum<<'\n';

end:;


我遇到一个问题,就是我在输入四则运算式时,最后要输入等号‘=’,才能结束while循环,得出结果!
我想问一下,如何修改这个程序,使得不需要输入等号,只要在输入完计算式后,按回车,就能得出结果呢?
多谢各位了~!
...全文
115 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gg137zeus 2005-10-10
  • 打赏
  • 举报
回复
呵呵,就是对我的程序修改下,满足要求,就ok!
希望有高手帮我吖!小女子跪谢!:)
xlsue 2005-10-10
  • 打赏
  • 举报
回复
楼主要专家求代码吗?
gg137zeus 2005-10-10
  • 打赏
  • 举报
回复
vteliang(神奇小子) ,你说把哪个='换成'\n'??
我试了一下,不行吖,呜呜!
gg137zeus 2005-10-10
  • 打赏
  • 举报
回复
不对不对,弄错了吖,snowbirdfly(胡晋) ,你的程序只能完成一步运算,而我这个要求能够完成四则运算的!四则运算,understand?
vteliang 2005-10-10
  • 打赏
  • 举报
回复
你把'='换成'\n'就行!!
gg137zeus 2005-10-10
  • 打赏
  • 举报
回复
这个程序可以噢,好厉害吖!
谢谢2楼的大侠!
我想问你一下,那我用goto语句为什么不可以呢?
gg137zeus 2005-10-10
  • 打赏
  • 举报
回复
我这个程序就是练习goto语句的,晕倒!
xlsue 2005-10-10
  • 打赏
  • 举报
回复
不要在while中用=,楼主用goto破坏了程序结构化,不良的风格。建议重新修改。
snowbirdfly 2005-10-10
  • 打赏
  • 举报
回复
建议楼主尽量不要使用goto语句~~~
snowbirdfly 2005-10-10
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

void min()
{
float a,b;
char ch;
float result = 0.0;
bool flag = false;
cout<<"Please Input The First Number:"<<endl;
cin>>a;
cout<<"Please Input The Operate:"<<endl;
cin>>ch;
cout<<"Please Input The Second Number:"<<endl;
cin>>b;
switch(ch)
{
case '+':
result = a+b;
flag = true;
break;
case '-':
result = a-b;
flag = true;
break;
case '*':
result = a*b;
flag = true;
break;
case '/':
if(b == 0)
cout<<"除数为0了:"<<endl;
else
{
result = a/b;
flag = true;
}
break;

default:
cout<<"运算符输入有误:"<<endl;
break;
}
if(flag)
cout<<"结果为:"<<result<<endl;
}
int main()
{
min();
return 0;
}
这个可以吧~~~

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧