C 整型数组颠倒

对于奇数个元素的数组,我们这样编写类C伪代码
for(i = 0 , j = SIZE - 1; i != j; i++, j–)

    temp = array[i];

    array[i] = array[j];

    array[j] = temp;
对于偶数个元素的数组,我们这样编写类C伪代码:
for(i = 0, j = SIZE - 1; i < j; i++, j–)

    temp = array[i];

    array[i] = array[j];

    array[j] = temp;
优化之后,我们发现 j = SIZE - i - 1 ,i < SIZE / 2而且当元素个数为偶数个时,i 不会等于 j 。综合后得出代码:

#include <stdio.h>
#include <stdlib.h>

#define SIZE 10

int main(int argc, char * argv[]){
    int i, temp, array[SIZE] = {1,2,3,4,5,6,7,8,9,10};
    for(i = 0; i < SIZE / 2; i++){
        temp = array[i];
        array[i] = array[SIZE - i - 1];
        array[SIZE - i - 1] = temp;
    }
    for(i = 0; i < SIZE; i++)
        printf("%d ",array[i]);
    getchar();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_34998666/article/details/82429687