使用c++写一个比较double数组是否相同的函数。
下面是一个使用C++编写的比较double数组是否相同的函数的示例代码:
#include <iostream>
#include <cmath>
bool compareDoubleArrays(const double arr1[], const double arr2[], int size) {
for (int i = 0; i < size; i++) {
if (std::abs(arr1[i] - arr2[i]) > 0.000001) { // 使用一个小的误差范围来比较浮点数
return false;
}
}
return true;
}
int main() {
const int size = 5;
double arr1[size] = {1.0, 2.0, 3.0, 4.0, 5.0};
double arr2[size] = {1.000001, 1.999999, 3.0, 4.0, 5.0};
double arr3[size] = {1.0, 2.0, 3.0, 4.0, 5.0};
if (compareDoubleArrays(arr1, arr2, size)) {
std::cout << "arr1 and arr2 are the same." << std::endl;
} else {
std::cout << "arr1 and arr2 are different." << std::endl;
}
if (compareDoubleArrays(arr1, arr3, size)) {
std::cout << "arr1 and arr3 are the same." << std::endl;
} else {
std::cout << "arr1 and arr3 are different." << std::endl;
}
return 0;
}
该函数compareDoubleArrays接受两个double类型的数组和数组的大小作为参数,通过迭代比较数组中的每个元素是否相等。由于浮点数的比较存在精度问题,我们使用了一个小的误差范围(0.000001)来进行比较。如果两个数组中的所有元素都相等,则返回true,否则返回false。在示例代码中,我们分别比较了arr1和arr2、arr1和arr3的相等性,并输出了对应的结果。
原文地址: https://www.cveoy.top/t/topic/i9wP 著作权归作者所有。请勿转载和采集!