双打意味着加分?

问题描述 投票:0回答:1

我正在制作一个用作计算器的c ++程序。一切都有效,除了除法功能,由于某种原因增加了双打。任何人都有修复?

我已经尝试过明确地投射到双人桌面并将我的头撞在桌子上。以下是我的代码的几个片段。

#include "pch.h"
#include <iostream>
using namespace std;

void divide()
{
    //first number
    cout << "What is the numerator?";
    double firstNum = 0;
    cin >> firstNum;
    //second number
    cout << "What is the denominator?";
    double secNum = 0;
    cin >> secNum;
    //multiplying
    double answer = firstNum/(double)secNum;
    cout << "Your answer is " << answer << ".";
}

int main() 
{
    //asks for what operation user would like to use
    cout << "Do you want to add, subtract, divide, or multiply? Type [1] for add, [2] for subtract, [3] for divide, and [4] for multiply(minus the brackets).";
    double opquery = 0;
    cin >> opquery;

    // if division
    if (opquery == 3)
    {
        divide();
        return 0;
    }
}

我本来期望像4/4这样的东西等于1,但它只是返回加法

更新:完整的代码可以在https://github.com/hoverdoge/cppcalculatorerror/blob/master/code找到

c++ debugging double visual-studio-debugging
1个回答
0
投票

实际上,你在这里分享的代码是好的,4/4 = 1的结果。

但是您在github中共享的代码有所不同。删除;after if (opquery == 1);该程序可以正常工作。

变化来自:

if (opquery == 1);
    {
        add();
        return 0;
    }

至:

if (opquery == 1)
    {
        add();
        return 0;
    }

注意:当你添加额外的;after if(xxx)时,无论opquery的值是什么,main方法都将执行以下步骤:

cout << "xxx...";
int opquery = 0;
cin >> opquery;
add();
return 0;

这就是出现这个问题的原因。

© www.soinside.com 2019 - 2024. All rights reserved.