c - 试图编写一个整数比较方法,但它不起作用

标签 c arrays loops int

我有一个整数数组,我试图找到最大的一个并将新整数设置为最高的值。我是 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/

相关文章:

c++ - do-while循环,无限循环

在 R 中的 data.table 中用 0 替换所有 NA

c++ - 如何在 C++ 中动态分配连续的二维数组?

javascript - 查找数组数组中最长数组的索引

c - 变量的内存分配

c - 在现代 x86 系统上,栈 float 组操作是否比堆浮点操作更快?

java - Android:为什么ArrayAdapter一开始显示null?

java - 循环中未使用的变量

c - 无法使用 pthread_cond_signal 向 C 中的另一个进程发送信号

c - 安装适用于 C/C++ 的 openSSL MacOs X gcc-9 时遇到问题