#include<stdio.h> typedef int Elemtype ; typedef struct LNode{ Elemtype data ; struct LNode *next ;}LNode,LinkList ; void CreatList_H(LinkList &L, int n){ L=(LinkList)malloc(sizeof(LNode)) ; LinkList P ; L->next=NULL ; int i ; for(i=1;i<=n;i++){ P=new LNode ; scanf("%d",&P->data) ; P->next=L->next ; L->next=P ; } } void ReverseList(LinkList &L,int n){ LinkList P,R ; P=L->next->next ; R=L->next ; int i ; for(i=1;i<n;i++){ R->next=P->next ; P->next=L->next ; L->next=P->next ; P=R->next ; } } void PrintList(LinkList L, int n) { int i ; for(i=1;i<=n;i++){ L=L->next ; printf("%d\n",L->data) ; } } int main(){ LinkList L; int n ; scanf("%d",&n); if(n==0) { printf("list is empty") ; return 0 ; } CreatList_H( L, n) ; ReverseList( L, n); PrintList( L, n) ; return 0 ; }查错
时间: 2024-01-15 22:05:25 浏览: 193
#include <stdio.h>
4星 · 用户满意度95%
这段代码存在以下几个问题:
1. 在使用malloc分配内存时,需要将返回值强制转换为LinkList类型。应该将CreatList_H()函数中的L=(LinkList)malloc(sizeof(LNode))改为L=(LinkList)malloc(sizeof(struct LNode))。
2. 在使用new分配内存时,需要使用C++语言编译器。应该将CreatList_H()函数中的P=new LNode改为P=(LinkList)malloc(sizeof(struct LNode))。
3. 在main()函数中调用CreatList_H()函数时,应该将void CreatList( L, n)改为CreatList_H(L, n)。
修改后的代码如下:
阅读全文