为了账号安全,请及时绑定邮箱和手机立即绑定

链表中的段错误,帮忙找一下吧

链表中的段错误,帮忙找一下吧

C
weibo_殇雨916_0 2016-05-17 12:58:52
输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入若干个正整数(输入-1为结束标志),建立一个单向链表,将其中的奇数值结点删除后输出#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct Node {  int data; struct Node *next;  }No; No* createlist() {   No * head;   No * p,* pre;   int i,a; head=(No*)malloc(sizeof(No)); head->next=NULL; pre=head; while(scanf("%d",&a)) { if(a!=-1)     { p=(No*)malloc(sizeof(No));      p->data=a; pre->next=p; pre=p; } else { pre->next=NULL; break; }    }    return head; } void print(No*head) { int i,n=0; No* q=head; No*h=head->next; while(h) { if((h->data)%2!=0) { q->next=h->next; h=h->next; } else{ q=h;      h=h->next; } } free(h); while(head->next->next) { printf("%d ",head->next->data); head=head->next; } printf("%d",head->next->data); } int main() { int n,i; scanf("%d",&n); for(i=0;i<n;i++){ print(createlist()); printf("\n"); } return 0; }输入样例:2 (repeat=2) 1 2 3 4 5 6 7 -1 1 3 5 -1输出样例:2 4 6
查看完整描述

1 回答

?
杰伦窗外的小麻雀

TA贡献16条经验 获得超7个赞


我本职做前端的,不要总是问我C啊,表示不会

查看完整回答
反对 回复 2016-05-17
  • 1 回答
  • 0 关注
  • 2135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信