C++分数计算器不生成输出
C++ Fraction Calculator not generating output
这是我编写的一个程序,它应该从对应于要加、减、乘或除的分数的数据文件中获取 int 和 char 数据。但是,当程序使用适当的数据文件运行时,不会生成任何输出。
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
void is_negative(int&,int&,int&,int&);
void add(int&,int&,int&,int&,int&,int&);
void diff(int&,int&,int&,int&,int&,int& );
void produ(int,int,int,int,int&,int&);
void divi(int,int,int,int,int&,int&);
int main()
{
int n1,d1,n2,d2;
int n3,d3 = 0;
char op; //operator
cin >> n1 >> d1 >> op >> n2 >> d2;
while(cin)
{
is_negative(n1,d1,n2,d2);
if((d1 == 0 )||(d2 == 0))
{
cout << n1 << "/" << d1 << " " << op << " " << n2 << "/" << d2 << " = cannot evaluate, 1 or both fractions are invalid" << endl;
}
else if(op == '+')
{
cout << n1 << "/" << d1 << " " << op << " " << n2 << "/" << d2 << " = " << endl;
add(n1,d1,n2,d2,n3,d3);
}
else if(op == '-')
{
cout << n1 << "/" << d1 << " " << op << " " << n2 << "/" << d2 << " = " << endl;
diff(n1,d1,n2,d2,n3,d3);
}
else if(op == '*')
{
cout << n1 << "/" << d1 << " " << op << " " << n2 << "/" << d2 << " = " << endl;
produ(n1,d1,n2,d2,n3,d3);
}
else if(op == '/')
{
cout << n1 << "/" << d1 << " " << op << " " << n2 << "/" << d2 << " = " << endl;
divi(n1,d1,n2,d2,n3,d3);
}
cin >> n1 >> d1 >> op >> n2 >> d2;
}
return 0;
}
void is_negative(int& n1, int& d1, int& n2, int& d2)
{
if(d1 < 0)
{
d1 = -2 * d1;
n1 = -1 * n1;
}
if(d2 < 0)
{
d2 = -1 * d2;
n2 = -1 * n2;
}
}
void add(int& n1, int& d1, int& n2, int& d2, int& n3, int& d3)
{
d1 = d1 * d2;
d2 = d2 * d1;
n1 = n1 * d2;
n2 = n2 * d1;
n3 = n1 + n2;
d3 = d2;
cout << n3 << "/" << d3 << endl;
}
void diff(int& n1, int& d1, int& n2, int& d2, int& d3, int& n3)
{
d1 = d1 * d2;
d2 = d2 * d1;
n1 = n1 * d2;
n2 = n2 * d1;
n3 = n1 - n2;
d3 = d2;
cout << n3 << "/" << d3 << endl;
}
void produ(int n1, int d1, int n2, int d2, int& n3, int& d3)
{
n3 = n1 * n2;
d3 = d1 * d2;
cout << n3 << "/" << d3 << endl;
}
void divi(int n1, int d1, int n2, int d2, int& n3, int& d3)
{
if(n2 != 0)
{
n3 = n1 * d2;
d3 = d1 * n2;
cout << n3 << "/" << d3 << endl;
}
else
{
cout << "division by 0 is not defined" << endl;
}
}
我希望这个程序能够生成输出语句,因为输入的所有数据都将转到四个计算器函数之一,所有函数都以 print 语句结尾。我错过了什么?
谢谢!
如果我只按预期顺序输入数字和运算符,程序似乎打印正常。我建议检查输入文件,看看它是否确实以您期望的格式发送
我认为您应该检查输入格式。按照上述代码,运算符和操作应用"或输入字符分隔。
P/s:这些代码输出 ->错误的结果。您应该检查 4 个计算函数。
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- C ,兴趣计算器未显示正确的输出
- 二阶多项式计算器的输出不一致
- Pi计算器程序每次运行时都会给出不同的输出
- 在 c++ 计算器程序中重载 '+' 运算符时无法获得正确的输出
- 为什么我的输出显示显示计算器中的每个选项
- C++分数计算器不生成输出
- 计算器程序总是输出 0 - 我做错了什么
- 统计计算器输出无限循环
- 在C++中,如何获得与计算器完全相同的输出
- 简单的计算器问题(不输出答案)