试图编码整数比较方法,它不起作用

Dan*_*nMc 0 c arrays int loops

我有一个整数数组,我试图找到哪一个是最高的,并设置一个新的整数到最高的值.我对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++]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

通过我的数组所以我循环4次(4元),我看迭代值和下一个,如果迭代值是最高的我检查它也比目前的"最高整数"的电流值高,如果它是我将当前的最高整数设置为新的最高值.如果迭代值之后的值更高,我会做同样的事情,但改为使用该值.

当我写这篇文章的时候,这就是我的想法,但当我输入4个值时,它总是以数组中的第3个值出现.不管我把这些值设置为什么.

谁能告诉我为什么?

非常感谢.

P.P*_*.P. 6

你为什么要i在循环中递增?为什么你需要其他部分?

这是一个简单的方法:

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];
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • +1使用数组的第一个元素作为起始最高值. (2认同)