#include<stdio.h>
#include<stdlib.h>
typedef struct LNode LNode;
typedef struct LNode *list;
typedef struct LNode{
int data;
LNode *next;//指向下一个节点
}LNod,*list;
LNode*getelem(list L,int i){
if(i<0)
return NULL;
LNode *p;
int j=0;
p=L;
while(p!=NULL&&j<i){
p=p->next;
j++;
}
return p;
}
int main(){
int a,b,c;
list L,m;
LNode*s,*r=L;
L=(list)malloc(sizeof(LNode));
L->next=NULL;//初始化
scanf("%d\n",&a);
for(int i=0;i<a;i++){
scanf("%d",&b);
s=(LNode*)malloc(sizeof(LNode));
s->data=b;
r->next=s;
r=s;
}
r->next=NULL;
scanf("%d",&c);
c=a-c+1;
m=getelem(L,c);
printf("%d",m->data);
}
这是我的代码,求链表的倒数第m个元素,请问哪里错了
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- CSDN专家-天际的海浪 2021-10-10 00:58关注
要在为 L 分配空间之后再让 r 指向L的地址
L=(list)malloc(sizeof(LNode));
r=L;
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)#include<stdio.h> #include<stdlib.h> typedef struct LNode LNode; typedef struct LNode *list; typedef struct LNode{ int data; LNode *next;//指向下一个节点 }LNod,*list; LNode*getelem(list L,int i){ if(i<0) return NULL; LNode *p; int j=0; p=L; while(p!=NULL&&j<i){ p=p->next; j++; } return p; } int main(){ int a,b,c; list L,m; LNode*s,*r; L=(list)malloc(sizeof(LNode)); r=L; L->next=NULL;//初始化 scanf("%d\n",&a); for(int i=0;i<a;i++){ scanf("%d",&b); s=(LNode*)malloc(sizeof(LNode)); s->data=b; r->next=s; r=s; } r->next=NULL; scanf("%d",&c); c=a-c+1; m=getelem(L,c); printf("%d",m->data); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 宇视监控服务器无法登录
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥15 DruidDataSource一直closing
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据