求实习 level
获赞
44
粉丝
2
关注
0
看过 TA
2
山东大学(威海)
2018
运维工程师
IP属地:未知
暂未填写个人简介
私信
关注
这个面试(一)上什么意思
求实习:cvte南京只有面试点还是南京有分部呀
0 点赞 评论 收藏
分享
2017-04-21 20:41
已编辑
山东大学(威海) 运维工程师
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d?tpId=37&tqId=21274&tPage=1&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking   这道题,自己写的程序本地没问题了,在牛客提交无输出,实在找不到问题了,过来问一下,麻烦有知道的帮忙回答一下       #include<stdio.h>   #include<stdlib.h>      typedef struct Nod...
求实习:更正一下,确实是自己的问题,首先是牛客网在线编程多数题目要求的是循环输入的,有两周没刷题了,给忘记了,感谢@八宝菊花茶 的改正。 其次  一旦涉及循环输入,就要保证每次循环变量都要重新初始化,所以我就将 tail = head; first = head; 这两个赋值在每次循环中重新赋值一次。这时程序实现上已经没有问题了,再次提交,出现了堆栈溢出的情况,仔细查看发现是malloc没有配合free使用,所以在最后释放了链表占用的所有内存,只留下了头结点。奉上最新代码 #include<stdio.h> #include<stdlib.h> typedef struct Node{ int data; struct Node *pNext; }NODE,*PNODE; int main(void) { int len,i,key,val; PNODE q,r; PNODE head = (PNODE)malloc(sizeof(NODE)); PNODE tail = head; PNODE first = head; head->pNext = NULL; while(scanf("%d",&len) != EOF){ for(i = 0;i < len;i++) { PNODE p = (PNODE)malloc(sizeof(NODE)); scanf("%d",&val); p->data = val; tail->pNext = p; p->pNext = NULL; tail = p; } scanf("%d",&key); if(key == 0) printf("0\n"); else{ for(i = 0;i<=len-key;i++) first = first->pNext; printf("%d\n",first->data); } q = head->pNext; for(i = len;i>0;i--) { r = q->pNext; free(q); q = r; } first = head; tail = head; } return 0; }
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务