【问题标题】:How to manipulate the result of two parameters with arithmetic operations?如何用算术运算来操作两个参数的结果?
【发布时间】:2015-05-13 03:23:57
【问题描述】:

部分解决

查看下方,看看我是如何解决这个愚蠢的大问题的。


我目前正在尝试学习如何(在控制台中)对前一个数学运算的结果执行任何数学运算,例如:

user inputs 1
            +
            2
            system("cls");
            3
            *
            2
            system("cls");
            6
            /
            2
            system("cls");
            3

以此类推。

这是我的代码:

#include <iostream>
#include <string>
#include <windows.h>
using namespace std;

int main()
{
double num,num2, res;
string fchoice;
char choice;


system("cls");
cout << "0\b";
cin >> num;
system("cls");

cout << num << "\n\n";
cout << num << endl;
LOOP:
cin >> choice;
cout << "\n";

switch(choice)
    {
    case '+' :
        cin >> num2;
        res = num + num2 ;
                system("cls");
    cout << res << endl;
        break;

    case '-' :
        cin >> num2;
        res = num - num2 ;
                system("cls");
    cout << res << endl;
        break;
    case '/' :
        cin >> num2;
        res = num / num2 ;
                system("cls");
    cout << res << endl;
        break;
    case '*' :
        cin >> num2;
        res = num * num2 ;
                system("cls");
    cout << res << endl;
        break;
    }



return 0;
}

但问题是,我不知道如何存储最后的结果。 所以我的问题是(如果这对你们来说不是太麻烦的话):

  • 我如何存储结果以便日后对其进行操作?

  • 如果用户输入的是数字而不是操作,如何使控制台重置(或删除)之前的结果,并使控制台准备好进行新的操作?

    如果你们能给我一些提示,我将不胜感激。

编辑:我忘了说我是初学者。

最后编辑:

我所要做的只是简单地添加这一行,将之前定义的double num 重写为num = res;,就在goto LOOP; 之前,所以它总是会回到开头。

【问题讨论】:

  • 您的goto 用法实际上只是模拟了一个简单的循环。将标签更改为循环介绍,将gotos 更改为breaks 以退出开关。
  • 是否所有用户输入都将发生在同一个程序调用中,或者数据是否应该在执行之间可用(“持久”)?
  • @chris 好的,谢谢。
  • @user1717828 最后的结果必须保持并保存以供下次操作。
  • @BeyondNero,啊,如果您希望信息在执行之间保持不变,则需要将结果写入文件。每次程序存在时,所有变量数据都会丢失。

标签: c++ c++11 calculator


【解决方案1】:

你真的应该停止使用 goto 语句并为此使用循环。 (顺便说一句,我可以看到您的标签,但看不到您的 goto 语句?)。要回答您的第二个问题,您可以在 switch 语句中添加一个默认语句,如果不是

 default:
    goto (any label at beginning of program);

或者,如果您使用的是 while 循环,只需清除默认语句中的所有值。

作为脚注,为什么要写

cout<<res<<endl;

4 次?只需在开关外写一次。

【讨论】:

  • 完成并完成。谢谢!
猜你喜欢
  • 2016-05-02
  • 2021-06-18
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
相关资源
最近更新 更多