数组元素逆置问题,执行后一半结果出错,求解

 

int z就出错了。int z = sizeof(arr);就行呀

while里面,交换数也出错了,不要用e,直接把arr[j]和arr[z-1-j]交换。l=arr[j];arr[j]=arr[z-1-j];arr[z-1-j]=l;j++;

希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
 

如果满意我的回答,我会感谢你采纳我的回答。:)


#include <stdio.h>

#define N 5 

int main()
{
    int arr[N];
    int* tail = arr + (N -1);
    int* p = arr;
    printf("Please enter %d numbers: ", N);
    while (p <= tail)
        scanf("%d", p++);
        
    p = arr;
    int* q = tail;
    while (p < q) {
        int t = *p;
        *p++ = *q;
        *q-- = t;
    }
    
    printf("Reversed numbers: ");
    p = arr;
    while (p <= tail)
        printf("%d ", *p++);
    printf("\n");
    
    return 0;
}


// Output
Please enter 5 numbers: 1 2 3 4 5                                                                                                                                                  
Reversed numbers: 5 4 3 2 1