如何解决除以零 C++ 时如何显示错误
我正在尝试创建简单的计算器。它适用于除“/”之外的每个运算符。 但是当 num2 = 0 程序完全停止。我曾尝试使用条件语句在 num2 = 0 时输出错误消息,但它不起作用。
代码如下
#include <iostream>
#include <stdexcept>
using namespace std;
int SumNum(int& a,int& b);
int SubNum(int& a,int& b);
int DivNum(int& a,int& b);
int MulNum(int& a,int& b);
int main()
{
char op;
int* num1 = new (nothrow) int;
int* num2 = new (nothrow) int;
cout << "Enter operator either + or - or * or /: ";
cin >> op;
cout << "Enter first operand: ";
cin >> *num1;
cout<< "Enter second operand: ";
cin >> *num2;
switch (op)
{
case '+':
cout << "Result is : " << SumNum(*num1,*num2) << endl;
break;
case '-':
cout << "Result is : " << SubNum(*num1,*num2) << endl;
break;
case '/':
cout << "Result is : " << DivNum(*num1,*num2) << endl;
break;
case '*':
cout << "Result is : " << MulNum(*num1,*num2) << endl;
break;
default:
cout << "Incorrect operator";
break;
}
return 0;
}
int SumNum(int& a,int& b) {
return a + b;
}
int SubNum(int& a,int& b) {
return a - b;
}
int DivNum(int& a,int& b) {
return a / b;
}
int MulNum(int& a,int& b) {
return a * b;
}
解决方法
您可以使用以下方法更改除法大小写:
case '/':
if (*num2 == 0) {
cout << "Error: You can't divide by 0!" << endl;
break;
}
cout << "Result is : " << DivNum(*num1,*num2) << endl;
break;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。