我正在制作一个用作计算器的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
找到
实际上,你在这里分享的代码是好的,4/4 = 1的结果。
但是您在github中共享的代码有所不同。删除
;
afterif (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;
这就是出现这个问题的原因。