我有一个整数数组,我试图找到最大的一个并将新整数设置为最高的值。我是 C 语言的新手,实际上我才刚刚开始学习它。
我正在做的事情可能存在某种逻辑问题,但我还没有发现它。所以...
int my_array[4];
int highest_int = 0;
int i;
for (i = 0; i < 4; i++) {
if (my_array[i] > my_array[i++]) {
if (my_array[i] > highest_int) {
highest_int = my_array[i];
}
}
else {
if (my_array[i++] > highest_int) {
highest_int = my_array[i++]
}
}
}
所以我遍历我的数组 4 次(4 个元素),然后查看迭代值和下一个迭代值,如果迭代值最高,我检查它是否也高于当前“最高整数”的当前值,并且如果是,我将当前最高整数设置为新的最高值。如果迭代值之后的值更高,我会做同样的事情,但使用那个值。
这就是我写这篇文章时脑子里想的,但是当我输入 4 个值时,它总是以数组中的第 3 个值出现。无论我将这些值设置为什么。
谁能告诉我为什么?
非常感谢。
最佳答案
为什么要在循环内递增 i
?为什么需要 else 部分?
这里有一个简单的方法:
int my_array[4];
int highest_int = my_array[0];
int i;
for (i = 1; i < 4; i++) {
if (my_array[i] > highest_int) {
highest_int = my_array[i];
}
}
关于c - 试图编写一个整数比较方法,但它不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13166713/