数组逆序数排列c语言
时间: 2023-10-17 07:06:50 浏览: 72
可以使用以下的C语言代码来实现数组逆序排列:
```c
#include <stdio.h>
#define MAX_SIZE 20
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[MAX_SIZE];
int num, i = 0;
// 读入一组整数并保存在数组中
while(scanf("%d", &num), num != 0) {
arr[i++] = num;
}
// 逆序排列数组
for(int j = 0; j < i/2; j++) {
swap(&arr[j], &arr[i-j-1]);
}
// 打印逆序排列后的数组
for(int k = 0; k < i; k++) {
printf("%d ", arr[k]);
}
return 0;
}
```
相关问题
用指针数组逆序排列c语言
使用指针数组逆序排列C语言可以通过以下步骤实现:
1. 声明一个指针数组,并初始化数组元素为需要逆序排列的数据。
2. 使用两个指针变量,一个指向数组的第一个元素,另一个指向数组的最后一个元素。
3. 使用循环交换指针所指向的元素,并将两个指针向中间移动,直到它们相遇为止。
4. 循环结束后,指针数组中的元素就被逆序排列了。
下面是一个示例代码:
```c
#include <stdio.h>
void reverseArray(int* arr[], int size) {
int* start = arr[0];
int* end = arr[size - 1];
while (start < end) {
int* temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
int num1 = 1, num2 = 2, num3 = 3;
int* arr[] = { &num1, &num2, &num3 };
int size = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:");
for (int i = 0; i < size; i++) {
printf("%d ", *arr[i]);
}
reverseArray(arr, size);
printf("\n逆序排列后的数组:");
for (int i = 0; i < size; i++) {
printf("%d ", *arr[i]);
}
return 0;
}
```
运行以上代码,输出结果为:
```
原始数组:1 2 3
逆序排列后的数组:3 2 1
```
将一维数组中的数值进行逆序排列c语言
可以使用双指针的方法,从数组两端开始交换元素,直到两个指针相遇。
以下是示例代码:
```c
void reverseArray(int arr[], int n) {
int left = 0, right = n - 1;
while (left < right) {
// 交换左右端点的元素
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
// 更新指针位置
left++;
right--;
}
}
```
在主函数中调用该函数即可将数组中的元素逆序排列。