C语言中将-一个数组中的值按逆序重新存放。例如,原来顺序为 28,16, 35, 44, 51。要求改为51,44, 35,16, 28。。
时间: 2024-12-17 16:36:08 浏览: 29
在C语言中,要将数组中的元素按逆序重新存放,你可以使用两层循环或者通过指针操作来实现。这里我会展示两种常见的方法:
**方法一:使用两个for循环**
```c
#include <stdio.h>
void reverse_array(int arr[], int size) {
for (int i = 0; i < size / 2; i++) {
int temp = arr[i]; // 临时存储第一个元素
arr[i] = arr[size - 1 - i]; // 将最后一个元素放到第一个位置
arr[size - 1 - i] = temp; // 将第一个位置的元素放到最后一个位置
}
}
int main() {
int arr[] = {28, 16, 35, 44, 51};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
reverse_array(arr, size);
printf("\nReversed array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
**方法二:使用指针操作**
```c
#include <stdio.h>
void reverse_array_with_pointers(int* start, int* end) {
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
// 使用方法
int main() {
int arr[] = {28, 16, 35, 44, 51};
int size = sizeof(arr) / sizeof(arr[0]);
int* begin = arr;
int* end = arr + size - 1;
// 打印原始数组
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", *arr++);
}
// 反转数组
reverse_array_with_pointers(begin, end);
// 再次打印反转后的数组
printf("\nReversed array: ");
for (int i = 0; i < size; i++) {
printf("%d ", *arr++);
}
return 0;
}
```
运行上述代码,你会看到原数组的元素被成功逆序了。
阅读全文