)编写程序把以下数值:10,3,5,7,8,2,4, 6,8,1存放在下面的顺序表中,并调用自定义的排序函数将数值按照降序排列并输出。
时间: 2023-09-13 17:05:22 浏览: 68
好的,以下是Python的代码实现:
```python
# 定义排序函数
def custom_sort(arr):
for i in range(len(arr)):
for j in range(i+1, len(arr)):
if arr[j] > arr[i]:
arr[i], arr[j] = arr[j], arr[i]
# 定义数值列表
num_list = [10,3,5,7,8,2,4,6,8,1]
# 调用排序函数
custom_sort(num_list)
# 输出排序结果
print(num_list)
```
输出结果为:
```
[10, 8, 8, 7, 6, 5, 4, 3, 2, 1]
```
这个程序中,我们定义了一个`custom_sort`函数来实现降序排列。这个函数使用了双重循环来比较和交换数组中的元素。在主程序中,我们先定义了数值列表`num_list`,然后调用`custom_sort`函数来对其进行排序,最后输出排序结果。
相关问题
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;
好的,我理解了您的问题。下面是一个示例程序,用于将给定的数字存储到顺序表中,并按照降序排序并输出:
```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` 函数中我们遍历了排好序的数组,并将每个元素输出到屏幕上。
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;
下面是一个简单的实现:
```c
#include <stdio.h>
typedef int datatype;
#define maxsize 10
typedef struct {
datatype array[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->array[i] < list->array[j]) {
temp = list->array[i];
list->array[i] = list->array[j];
list->array[j] = temp;
}
}
}
}
int main() {
sequenlist list = {{10, 3, 5, 7, 8, 2, 4, 6, 8, 1}, 10};
sort_desc(&list);
int i;
for (i = 0; i < list.length; i++) {
printf("%d ", list.array[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
10 8 8 7 6 5 4 3 2 1
```
阅读全文