用C++写的计算器,可以实现连加连乘,却不能实现连减连除。

switch(r){caseHWND_ADD:{m_curnumber=m_curnumber+m_oldnumber;break;}caseHWND_SUB:{m_cu... switch(r)
{
case HWND_ADD:
{
m_curnumber=m_curnumber+m_oldnumber;
break;
}
case HWND_SUB:
{
m_curnumber=m_oldnumber-m_curnumber;
break;
}
case HWND_MUL:
{
m_curnumber=m_curnumber*m_oldnumber;
break;
}
case HWND_DIV:
{
m_curnumber=m_oldnumber/m_curnumber;
break;
}
}
case HWND_SUB:
{
m_curnumber=m_oldnumber-m_curnumber;
m_oldnumber=m_curnumber;
m_curnumber=m_oldnumber;
break;
}
可是这样也不对啊 改怎么改呢
展开
 我来答
undergrowth
2012-02-23 · TA获得超过1513个赞
知道小有建树答主
回答量:879
采纳率:0%
帮助的人:1210万
展开全部
12”“ -”“ 3”“ =” 显示结果为9 继续“=” 结果为3
m_curnumber=m_oldnumber-m_curnumber;
你看 第一次减法后 m_curnumber=9 m_oldnumber=12
第二次减法后 m_curnumber=3 m_oldnumber=12
第三次减法后 m_curnumber=9 m_oldnumber=12

你需要交换值 在每次减完后
追问
请问怎么交换值呢 
case HWND_SUB:
{
m_curnumber=m_oldnumber-m_curnumber;
m_oldnumber=m_curnumber;
m_curnumber=m_oldnumber;
break;
}
不对啊 是不是要写if语句啊
追答
确实 你可以使用一个标志  如果你要进行连续相减的话 可以使flag不断加一  flag初始值为1
在case HWND_SUB:
中 m_cout=m_oldnumber-flag*m_curnumber;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xmhlms
2012-02-23 · TA获得超过122个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:81.1万
展开全部
不太明白m_curnumber,m_oldnumber的含义
更多追问追答
追问
m_oldnumber 是输入的第一个数   m_curnumber 是输入的第二个数  结果保存在第二个数中
追答
但是计算玩一次后   你再看下   加和乘是没有顺序的   减和除是有先后次序的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式