问题遇到的现象和发生背景
输入输出一个学生信息
#include<bits/stdc++.h>
using namespace std;
struct ElementType{
char id[20];
char name[30];
char sex[5];
double x,y,z;
};
typedef struct Node{
ElementType data;
struct Node *next;
}Node,*LinkList;
LinkList createList() //创建单链表
{
LinkList L;
L=(LinkList)malloc(sizeof(Node));
L->next=NULL;
}
int find(LinkList L,LinkList S)
{
LinkList p;
p=L->next;
while(p!=NULL){
if(strcmp(p->data.id,S->data.id)==0) return 0;
p=p->next;
}
return 1;
}
LinkList input()
{
LinkList S;
S=(LinkList)malloc(sizeof(Node));
scanf("%s%s%s",S->data.id,S->data.name,S->data.sex);
scanf("%lf%lf%lf",&S->data.x,&S->data.y,&S->data.z);
return S;
}
void charu(LinkList L,LinkList S)
{
LinkList p,pre;
pre=L;
p=L->next;
while(p!=NULL){
pre=p;
p=p->next;
}
S->next=pre->next;
pre->next=S;
}
void output(LinkList S)
{
printf("%s %s %s ",S->data.id,S->data.name,S->data.sex);
printf("%.1f %.1f %.1f\n",S->data.x,S->data.y,S->data.z);
}
int main(){
char order[20];
LinkList L;
LinkList S;
L=createList();
while(1){
scanf("%s",order);
if(!strcmp(order,"Insert")){
puts("Insert:");
S=input();
if(find(L,S)){
charu(L,S);
output(S);
}
else printf("Failed\n");
}
else{
puts("Good bye!");
break;
}
}
return 0;
}
问题相关代码,请勿粘贴截图
运行结果及报错内容
Error:Segmentation