题目:
本题要求实现一个函数,可查找并打印某顺序表中的最大值及其下标。例如顺序表3,-5,0,9,-4中,最大值为9,在该函数中打印9,并换行打印其下标3。该函数无返回值。
函数接口定义:
在这里描述函数接口。例如:
void print_max_value_pos(Sqlist *L);
在这里解释接口参数。例如:其中 L 是用户传入的参数。 L 为指向顺序表的指针;函数无返回。
裁判测试程序样例:
#include <stdio.h>
typedef int Datatype;
#define LISTSIZE 100
typedef struct
{
Datatype items[LISTSIZE];
int length;
}Sqlist;
int Initlist(Sqlist *L)
{
L->length = 0;
return 1;
}
void input(Sqlist *L)
{
int i;
for (i = 0; i < 5; i++)
{
scanf("%d", &L->items[i]);
L->length++;
}
}
void print_max_value_pos(Sqlist *L);
int main()
{
Sqlist list;
int i;
Initlist (&list);
input(&list);
print_max_value_pos(&list);
}
输入样例:
在这里给出一组输入。例如:
3 -5 0 9 -4
输出样例:
在这里给出相应的输出。例如:
9
3
答案:
void print_max_value_pos(Sqlist *L)
{
int max;
int pos;
int i;
max=L->items[0];
pos=0;
for(i=1;i<L->length;i++)
{
if(L->items[i] > max)
{
max= L->items[i];
pos= i;
}
}
printf("%d\n",max);
printf("%d\n",pos);
}