C语言编写函数,实现将数组中连续的若干个元素的翻转。
时间: 2024-03-08 17:45:30 浏览: 24
好的,下面是一个用C语言实现将数组中连续的若干个元素翻转的函数:
```c
void reverse_sublist(int arr[], int start, int end) {
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
```
其中,`arr`是待操作的数组,`start`和`end`分别表示需要翻转的子数组的起始位置和结束位置(包含在内)。
具体实现步骤为:从子数组的两端开始,依次交换元素,直到两端相遇。
例如,对于数组`{1, 2, 3, 4, 5, 6, 7}`,如果需要翻转从下标2(即元素3)到下标4(即元素5)的子数组,可以调用函数`reverse_sublist(arr, 2, 4)`,得到翻转后的数组`{1, 2, 5, 4, 3, 6, 7}`。
注意,该函数并未对输入进行边界检查,使用时需要保证`start`和`end`的值合法,并且数组中元素的类型应该与函数参数`int`一致。
相关问题
用C语言编程实现将数组a中n个元素逆序存放。
以下是用C语言实现将数组a中n个元素逆序存放的代码:
```c
#include <stdio.h>
void reverse_array(int a[], int n) {
int left = 0, right = n - 1;
while (left < right) {
int temp = a[left];
a[left] = a[right];
a[right] = temp;
left++;
right--;
}
}
int main() {
int a[] = {1, 2, 3, 4, 5};
int n = sizeof(a) / sizeof(a[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
reverse_array(a, n);
printf("\nReversed array: ");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
在`reverse_array`函数中,使用双指针`left`和`right`,分别指向数组的首尾元素,然后交换它们的值,直到`left`指针大于或等于`right`指针。在主函数中,先输出原始数组,然后调用`reverse_array`函数进行逆序操作,最后输出逆序后的数组。
c语言用函数实现输出数组
以下是一个用C语言函数实现输出数组的例子:
```c
#include <stdio.h>
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
printArray(arr, size); // 输出:1 2 3 4 5
return 0;
}
```