输入若干个不超过100的整数,建立单链表,然后通过一趟遍历在单链表中确定值最大的结点。输出该结点的值及其序号。
输入格式:
首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在一行上输入数据个数n及n个不超过100的整数。
输出格式:
对于每组测试,输出单链表中值最大的结点的值和该结点的序号。输出格式如下: “max=dmax num=dnum” 其中,dmax表示最大的结点的值,dnum表示最大的结点的值所在结点的序号。若有多个相同的最大值,则以首次出现的为准。
输入样例:
1
30 85 97 43 70 69 29 77 22 64 25 55 39 95 69 99 61 97 69 59 12 88 55 75 66 13 75 36 85 67 69
输出样例:
max=99 num=15
C代码如下:
#include<>
#include<>
#include<>//该头文件中定义了int的最大数INT_MAX和最小数INT_MIN
typedef struct node{
int data;
struct node *next;
}Node;
int main(){
int T,n,value;
scanf("%d",&T);
while(T--){
Node *p,*q,*head=NULL,*t;
int max=INT_MIN,index=0,num=0;
scanf("%d",&n);
while(n--){
scanf("%d",&value);
index++;//用来记录当前的下标
if(value>max){
max=value;
num=index;//记录当前最大值的下标
}
p=(Node*)malloc(sizeof(Node));
p->next=NULL;
if(head==NULL){
head=p;
}
else{
q->next=p;
}
q=p;
}
printf("max=%d num=%d\n",max,num);
}
return 0;
}