5.编写程序把以下数值:10,3,5,7,8,2,4,6,8,1存放在下面的顺序表中,并调用自定义的排序函数将数值按照降序排列并输出。(本小题8分) typedef int datatype; #define maxsize 10 typedef struct datatype array[maxsize]; int length; }sequenlist;
时间: 2024-03-07 12:48:20 浏览: 72
好的,我理解了您的问题。下面是一个示例程序,用于将给定的数字存储到顺序表中,并按照降序排序并输出:
```c
#include <stdio.h>
#define maxsize 10
typedef int datatype;
typedef struct {
datatype data[maxsize];
int length;
} sequenlist;
// 自定义的降序排序函数
void sort_desc(sequenlist *list) {
int i, j;
datatype temp;
for (i = 0; i < list->length - 1; i++) {
for (j = i + 1; j < list->length; j++) {
if (list->data[i] < list->data[j]) {
temp = list->data[i];
list->data[i] = list->data[j];
list->data[j] = temp;
}
}
}
}
int main() {
sequenlist list = {{10, 3, 5, 7, 8, 2, 4, 6, 8, 1}, maxsize};
sort_desc(&list);
int i;
for (i = 0; i < list.length; i++) {
printf("%d ", list.data[i]);
}
printf("\n");
return 0;
}
```
输出结果是:
```
10 8 8 7 6 5 4 3 2 1
```
在这个示例程序中,我们首先定义了一个结构体 `sequenlist`,其中包含了一个数组 `data` 用于存储数字,以及一个整数 `length` 表示数组中实际存储的元素个数。
然后我们在 `main` 函数中初始化了一个 `sequenlist` 类型的变量 `list`,并将给定的数字存储到了这个变量的数组中。
接着我们调用了自定义的排序函数 `sort_desc`,该函数使用简单的选择排序算法将数组中的数字按照降序排列。
最后,在 `main` 函数中我们遍历了排好序的数组,并将每个元素输出到屏幕上。
阅读全文