我正在制作一个用作计算器的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
处找到完整代码
答案 0 :(得分:0)
实际上,您在此处共享的代码还可以,并且结果为4/4 = 1。
但是您在github中共享的代码有所不同。去掉
;
之后的if (opquery == 1);
程序可以正常工作。
更改自:
if (opquery == 1);
{
add();
return 0;
}
收件人:
if (opquery == 1)
{
add();
return 0;
}
注意:当在if(xxx)之后添加额外的;
时,无论opquery的值是什么,主要方法都会执行以下步骤:
cout << "xxx...";
int opquery = 0;
cin >> opquery;
add();
return 0;
这就是为什么会发生此问题。