用c语言编写函数void SortNumber(int *a,int n,int m1,int m2)。其功能是: (1)对a指向的数组中的n个元素按升序排序,再对其中第m1~m2个数作逆序处理。 (2)编写main函数,用给定的测试数据调用SortNumber
时间: 2023-06-14 07:02:28 浏览: 102
以下是实现函数SortNumber的代码:
```c
void SortNumber(int *a, int n, int m1, int m2) {
// 对数组进行升序排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
// 对第m1~m2个数进行逆序处理
for (int i = 0; i < (m2 - m1 + 1) / 2; i++) {
int temp = a[m1 + i];
a[m1 + i] = a[m2 - i];
a[m2 - i] = temp;
}
}
```
以下是调用SortNumber函数的main函数代码:
```c
#include <stdio.h>
int main() {
int a[] = {3, 1, 4, 2, 5};
int n = 5; // 数组长度
int m1 = 1; // 要进行逆序处理的起始位置
int m2 = 3; // 要进行逆序处理的结束位置
printf("排序前的数组:");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
SortNumber(a, n, m1, m2);
printf("排序后的数组:");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
排序前的数组:3 1 4 2 5
排序后的数组:1 4 3 2 5
```
阅读全文