问题:(链表建立输出都正常)主函数调用子函数的结果,为什么这两种方法(一种int型调用,一种新建一个结构
体)都不输出有子函数的部分,但是这两种方法在其他此类型的代码中就能运行。
(补充:代码没有写出第一个为最大值的情况,因为不会写这种情况,如果您会写,感谢您的补充)
#include<stdio.h>
#include<malloc.h>
typedef int ElemType;
typedef struct Lnode
{
int data;
struct Lnode *next;
}LinkNode;
void InitList(LinkNode *&L)
{
L=(LinkNode *)malloc(sizeof(LinkNode));
L->next=L;
}
void CreatList(LinkNode *&L,int a[],int n)
{
LinkNode *p,*r=L;
for(int i=0;i<n;i++)
{
p=(LinkNode *)malloc(sizeof(LinkNode));
p->data=a[i];
r->next=p;
r=p;
}
r->next=NULL;
}
void DispList(LinkNode *L)
{
LinkNode *p=L->next;
while(p!=L)
{
printf("%d ",p->data);
p=p->next;
}
}
int xh(LinkNode *L)
{
int i=0;
LinkNode *p=L->next;
int max=p->data;
while(p!=L&&p->data<=max)
{
i++;
p=p->next;
}
if(p->data>max)
{
i++;
}
return(i);
}
int main()
{
LinkNode *L;
int a[6];
InitList(L);
printf("请输入:");
for(int i=0;i<6;i++)
{
scanf("%d",&a[i]);
}
CreatList(L,a,6);
printf("请输出:");
DispList(L);
xh(L);
printf("\n最大的序号是%d",xh(L));
}
#include<stdio.h>
#include<malloc.h>
typedef int ElemType;
typedef struct Lnode
{
int data;
struct Lnode *next;
}LinkNode;
typedef struct
{
int i;
}xhreturn;
void InitList(LinkNode *&L)
{
L=(LinkNode *)malloc(sizeof(LinkNode));
L->next=L;
}
void CreatList(LinkNode *&L,int a[],int n)
{
LinkNode *p,*r=L;
for(int i=0;i<n;i++)
{
p=(LinkNode *)malloc(sizeof(LinkNode));
p->data=a[i];
r->next=p;
r=p;
}
r->next=NULL;
}
void DispList(LinkNode *L)
{
LinkNode *p=L->next;
while(p!=L)
{
printf("%d ",p->data);
p=p->next;
}
}
xhreturn xh(LinkNode *L)
{
int i=0;
LinkNode *p=L->next;
int max=p->data;
while(p!=L&&p->data<=max)
{
i++;
p=p->next;
}
if(p->data>max)
{
i++;
}
xhreturn k;
k.i=i;
return(k);
}
int main()
{
LinkNode *L;
int a[6];
InitList(L);
printf("请输入:");
for(int i=0;i<6;i++)
{
scanf("%d",&a[i]);
}
CreatList(L,a,6);
printf("请输出:");
DispList(L);
xhreturn k=xh(L);
printf("\n最大的序号是%d",k.i);
}