【发布时间】:2021-09-07 10:14:40
【问题描述】:
我有两个数组
double A[2][4] = {
{9, 10, 11, 12.0},
{13 14 15 16.3}
};
double B[2][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16},
{17, 18, 19, 20}
};
我想看看两个数组中的某些元素是否是近似的。 假设如果 A[:,2:4] ~ B[:,2:4],我希望程序打印行号。这是我的方法:
for (i = 0; i < 2; i++) {
for (k = 0; k < 5; k++) {
if (A[i][3] - B[k][3] < abs(0.5) && A[i][4] - B[k][4] < abs(0.5)) {
printf("row %d\n",k);
}
}
}
但它不能按我的意愿工作。 请告诉我我必须做什么? 非常感谢
【问题讨论】:
-
我不明白这个问题。您是在问为什么
B的代码无法编译?那是因为它是无效的 C... 你需要声明一个足够大的数组来包含所有元素。 -
是否要将
A的每一行与B的每一行进行比较? -
B 的类型与其初始值设定项不一致
-
为了更清楚,我刚刚重新修改了源代码和问题。
-
@palindrom 我只想比较 A 和 B 的每一行(第 2 列和第 3 列)的 2 个元素