c语言 编一排序函数和逆置函数,首先将一个包含10个数的数组按照升序排列,然后将从一指定位置m开始的n个数按照逆置后重新排列,并将新生成的数组输出。要求使用指针作为函数参数控制实现上述功能。
时间: 2024-02-01 09:13:25 浏览: 77
C语言程序设计-编写函数fun对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果;
5星 · 资源好评率100%
下面是 C 语言的排序函数和逆置函数的代码实现:
```c
#include <stdio.h>
void sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (*(arr + i) > *(arr + j)) {
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
void reverse(int *arr, int m, int n) {
int i, j, temp;
for (i = m, j = m + n - 1; i < j; i++, j--) {
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
int main() {
int arr[10] = {6, 3, 9, 2, 7, 1, 5, 4, 8, 0};
int m = 2, n = 4, i;
printf("Original array:\n");
for (i = 0; i < 10; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
sort(arr, 10);
printf("Sorted array:\n");
for (i = 0; i < 10; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
reverse(arr, m, n);
printf("Reversed array starting from %d and reversing %d elements:\n", m, n);
for (i = 0; i < 10; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
return 0;
}
```
在这个程序中,我们首先定义了一个包含 10 个数的数组 `arr`,然后调用了 `sort` 函数将数组按照升序排列,接着调用了 `reverse` 函数将从位置 `m` 开始的 `n` 个数进行逆置,并输出新生成的数组。在这个程序中,我们使用了指针作为函数参数,这样可以直接在函数内部修改原始数组,而不需要返回新的数组。
阅读全文