设顺序表的类型为sequenlist,请编写算法实现输出顺序表中最大的数据元素及其所在的位置
时间: 2023-05-26 07:04:28 浏览: 121
```
void FindMax(SequenList L)
{
int max = L.elem[0];
int pos = 0;
for(int i=1; i<L.length; i++)
{
if(L.elem[i] > max)
{
max = L.elem[i];
pos = i;
}
}
printf("The maximum element is %d, and its position is %d.\n", max, pos+1);
}
```
注:本算法中,假设元素类型为int。
相关问题
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
```