gpt4 book ai didi

c - 反转C中的整数数组

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:25 24 4
gpt4 key购买 nike

<分区>

给定一个包含 5 个元素 [1,2,3,4,5] 的整数数组,我试图反转数组中元素的顺序;例如该数组将变为 [5,4,3,2,1]。

int main(void) {
int n = 5; //Num of elements
int arr[5] = {1,2,3,4,5};
for (int i = 0; i < n; i++) {
printf("%d\n", arr[i]); //Print original vals
}
n--; //Decrement n by 1 for simplicity
for (int i = n; i >= 0; i--) {
int temp = arr[n - i]; //Set temp the max-index (4) - i
printf("\nSmall: %d\nBig: %d\n", arr[n - i], arr[i]); //Print current temp & arr[i]
arr[n - i] = arr[i]; //Set arr[max-index - i] to arr[i] (e.g arr[0] = arr[4])
arr[i] = temp; //Set arr[i] to arr[max-index - 1] (e.g. arr[4] = arr[0])
printf("\nBig: %d\nSmall: %d\n", arr[n - i], arr[i]); //Print new set
}
for (int i = 0; i < n + 1; i++) { //Print array in reverse order
printf("%d\n", arr[i]);
}
return 0;

}

第一个 for 循环应该打印:1 2 3 4 5最后一个:5 4 3 2 1

但是,它两次都打印 1 2 3 4 5,但是循环中反转数组的打印语句打印出正确的数字。我做错了什么吗?

我应该动态分配内存还是其他不允许我更改数组的东西?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com