如何用C++编写一个函数,该函数接受两个参数,如果这两个参数之间的相对差异超过10%,则设置一个标志为1?
时间: 2024-11-15 15:24:22 浏览: 6
在C++中,你可以创建一个名为`checkRelativeDifference`的函数,它接收两个double类型的参数并检查它们的相对差异是否超过10%。以下是实现这个功能的一个示例:
```cpp
#include <cmath>
// 定义一个布尔型标志变量
bool flag = false;
// 函数声明
void checkRelativeDifference(double num1, double num2) {
// 计算相对差异
double difference = std::abs(num1 - num2) / std::max(std::abs(num1), std::abs(num2));
// 检查差异是否大于10%
if (difference > 0.10) {
flag = true; // 如果差异超过10%,设标志为真
}
}
// 使用函数并检查结果
int main() {
double a = 50.0;
double b = 45.0;
checkRelativeDifference(a, b);
if (flag) {
std::cout << "相对差异超过10%" << std::endl;
} else {
std::cout << "相对差异未超过10%" << std::endl;
}
return 0;
}
```
在这个例子中,`checkRelativeDifference`函数首先计算两个数的绝对差除以两数中较大者的绝对值,得到相对差异。然后,如果这个差异大于0.10,就将标志`flag`设置为`true`。
阅读全文