gpt4 book ai didi

c - 为什么循环中的值永远不会大于2?

转载 作者:行者123 更新时间:2023-11-30 15:12:35 25 4
gpt4 key购买 nike

我有下面的循环,unique 的值永远不会大于2n 是数组中整数的总数(我从文件中逐行读取整数)。

我完全被难住了,并且已经有很长一段时间了。为什么unique的值永远不会大于2

int last = array[0];
int unique = 1;
int i;

for (i = 1; i < n; i++) {
if (array[n] != last) {
last = array[n];
unique++;
printf("i:%d\n", i);
printf("n:%d\n", n);
printf("last:%d\n:", last);
}
}
printf("unique:%d\n", unique);

输出:

 i:1
n:9
last:0
:unique:2
i:1
n:4
last:4
:unique:2
i:1
n:5
last:4
:unique:2
i:1
n:5
last:4
:unique:2
i:1
n:5
last:4
:unique:2
unique:1
i:1
n:20
last:0
:unique:2

最佳答案

您输错了数组索引:使用 array[i] 而不是 array[n]

这是一个更简单的版本:

int unique;
for (unique = 1; unique < n && array[unique] == array[unique - 1]; unique++) {
continue;
}
printf("unique:%d\n", unique);

关于c - 为什么循环中的值永远不会大于2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34970485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com