用C语言,编写一个函数实现将整型数组 a 中的6个整数逆置
时间: 2024-05-31 07:09:54 浏览: 122
好的,我明白了。以下是答案:
void reverse(int a[], int n) {
int i, j, temp;
for (i = 0, j = n - 1; i < j; i++, j--) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
其中,a 为整型数组,n 为数组中元素个数。该函数将数组 a 中的元素逆置。
相关问题
用类C语言描述将一个大小为n(非负整数)的整型数组各元素逆置的算法
在C语言中,反转一个大小为n的整型数组可以使用两种常见的方法:使用数组下标交换或双指针法。这里提供两种简单的算法:
**方法一:使用数组下标交换(遍历法)**
```c
#include <stdio.h>
void reverseArray(int arr[], int n) {
int start = 0;
int end = n - 1; // 开始和结束指针
while (start < end) { // 当开始指针小于结束指针时继续交换
int temp = arr[start]; // 临时存储开始位置的元素
arr[start] = arr[end];
arr[end] = temp; // 将结束位置的元素移动到开始位置,然后开始位置的元素移到结束位置
start++; // 向数组内部移动开始指针
end--; // 向数组外部移动结束指针
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
reverseArray(arr, size);
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]); // 打印逆序后的数组
}
return 0;
}
```
**方法二:双指针法**
```c
#include <stdio.h>
void reverseArray(int arr[], int n) {
int left = 0; // 左指针
int right = n - 1; // 右指针
while (left < right) { // 当左指针小于右指针时交换
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
// ...其他代码同上...
```
这两个函数分别从数组的两端向中间进行交换,直到两个指针相遇。
逆置数组c语言pta
以下是逆置数组的C语言代码示例:
```c
#include <stdio.h>
void reverseArray(int arr[], int start, int end) {
int temp;
while (start < end) {
temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int start = 1, end = 3;
int len = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
reverseArray(arr, start, end);
printf("\nReversed array: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
该代码定义了一个 `reverseArray` 函数,用于部分逆置数组。在 `main` 函数中,我们声明了一个整数数组 `arr`,并调用 `reverseArray` 函数来部分逆置数组中索引从 `start` 到 `end` 的元素。最后,我们输出逆置后的数组。
阅读全文