C语言编写函数void SortNumber(int *a,int n,int m1,int m2)。其功能是: (1)对a指向的数组中的n个元素按升序排序,再对其中第m1~m2个数作逆序处理。 (2)编写main函数,用给定的测试数据调用SortNumber 测试数据:4,31,-23,49,87,65,0,-67,17,79(其中,设m1=3,m2=7) 运行结果:-67,-23,49,31,17,4,0,65,79,87
时间: 2023-06-14 11:03:48 浏览: 69
基于栈的C语言迷宫问题与实现.docx
5星 · 资源好评率100%
以下是函数void SortNumber(int *a,int n,int m1,int m2)的实现:
```c
#include <stdio.h>
void SortNumber(int *a, int n, int m1, int m2) {
int i, j, temp;
// 升序排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
// 逆序处理第m1~m2个数
for (i = m1 - 1, j = m2 - 1; i < j; i++, j--) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
int main() {
int a[] = {4, 31, -23, 49, 87, 65, 0, -67, 17, 79};
int n = 10, m1 = 3, m2 = 7;
int i;
printf("排序前:");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
SortNumber(a, n, m1, m2);
printf("\n排序后:");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
运行结果:
```
排序前:4 31 -23 49 87 65 0 -67 17 79
排序后:-67 -23 49 31 17 4 0 65 79 87
```
阅读全文