为什么存在重复的值?它应该是这样的,但结果是这样的。我想找到一对2d数组,它的和等于输入的数字。
这是我的代码
#include <stdlib.h>
#include <stdio.h>
void main() {
int num[3][4] = {5, -1, 17, 8, 4, 18, -3, 15, 26, 6, -6, 10};
int checker, val;
printf("Enter integer to check: ");
scanf("%d", &checker);
printf("The pair of integers that add to %d aren", checker);
for (size_t value = 0; value < 12; value++) {
for (size_t value1 = 0; value1 < 12; value1++) {
for (size_t value2 = 0; value2 < 12; value2++) {
for (size_t value3 = value2 + 1; value3 < 12; value3++) {
val = num[value][value1] + num[value2][value3];
if (val == checker) {
printf("[%d,%d],", num[value][value1], num[value2][value3]);
}
}
}
}
}
}
当前您正在做:
printf("[%d,%d],", num[value][value1], num[value2][value3]);
我建议你这样做:
printf("value=[%d], value1=[%d], value2=[%d], value3=[%d], [%d,%d],",
value, value1, value2, value3,
num[value][value1], num[value2][value3]);
因此,不仅打印矩阵值,还打印索引。你会看到发生了什么。