编译没有问题(虽然时间复杂度大了点,但是想知道为什么出不来),但是打印不出结果。
1、你这if判断是判断的内循环结束之后k的值对应的num[k]与target的比较,并没有比较所有的计算结果,所以不一定会有结果输出。
2、如果是查找数组nums中的任意两个数之和与target的判断的话内循环的判断是有问题的,修改后代码参考如下:
int main() {
int nums[6] = {1, 3, 4, 6, 8, 14};
int target = 9;
for (int i = 0; i < 5; i++) {
for (int j = i + 1; j < 6; j++) {
if (nums[i] + nums[j] == target) {
printf("%d,%d\n", i, j);
}
}
}
return 0;
}
编译没问题只能说明语法没问题。
k一直在增长,num[k]有没有越界呢。