下面是一个使用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。在示例代码中,我们分别比较了arr1arr2arr1arr3的相等性,并输出了对应的结果。

使用c++写一个比较double数组是否相同的函数。

原文地址: https://www.cveoy.top/t/topic/i9wP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录