刚刚接触C语言,写了个小程序,不过有点毛病,望高手指点?
#include<iostream.h>#include<stdio.h>
#include<stdlib.h>
typedef struct Lnode{
int data;
struct Lnode *next;
}Lnode,*Linklist;
/*****************************************************
创造链表
******************************************************/
void creatlist_L(Linklist L,int n)
{ int i;
Linklist q,p;
L=(Linklist)malloc(sizeof(Lnode));
q=L;
q->next=NULL;
for(i=0;i<n;i++)
{printf("\nInput the %d data:",i+1);
p=(Linklist)malloc(sizeof(Lnode));
if(!p)return;
scanf("%d",&p->data);
p->next=NULL;
q->next=p;
q=p;
}
for(i=0;i<n;i++)
{printf("%d\n",L->next->data);
L=L->next;
}
}
/**********************************************************
插入元素
************************************************************/
void charu(int a,Linklist L)
{printf("%d\n",L->next->data); Linklist M,N,p;
N=L;
printf("%d",L->next->data);
M=(Linklist)malloc(sizeof(Lnode));
M->data=a;
int m=0;
while(a>=N->data&&N)
{p=N;
N=N->next;
}
if(!N)
{M->next=NULL;
N->next=M;
}
else
{M->next=p->next;
p->next=M;
}
printf("dsfjha");
}
int main()
{ int i,n,m;
Linklist L;
L=(Linklist)malloc(sizeof(Lnode));
L->next=NULL;
printf("Input the length of the Linklist:");
scanf("%d",&n);
creatlist_L(L, n);
printf("输入要插入的数:");
getchar();
scanf("%d",&i);
charu(i,L);
printf("输出升序:\n");
for(m=0;m<=n;m++)
{
printf("the %d th data is:%d\n",m+1,L->data);
L=L->next;
}
return 1;
}