用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;
}
可是这样也不对啊 改怎么改呢 展开
{
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;
}
可是这样也不对啊 改怎么改呢 展开
2个回答
展开全部
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
你需要交换值 在每次减完后
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询