结构体指针函数
ld returned 1 exit status这个是什么意思啊
代码如下
#include <stdio.h>
#include <stdlib.h>
typedef struct student {
int num;
int age;
int gender;
char natuve_place;
char email;
char QQ;
char name;
char academy;
int grade;
struct student *next;
struct student *prior;
} Student;
void DeletData(Student *,int);//删除数据
void CrateData(Student *);//增加数据
Student* ChcekData(Student *,int);//查看数据
void ReviseData(Student *,int);//修改数据
void PrintfData(Student *,int);//打印数据
int main() {
int input, num;
Student *pStu,*PStu;
pStu=(Student*)malloc(sizeof(Student));
pStu->next=NULL;
pStu->prior=NULL;
PStu=(Student*)malloc(sizeof(Student));
while(input) {
printf("****************************************\n");
printf("1.删除学生信息\n");
printf("2.新增学生信息\n");
printf("3.查询学生信息\n");
printf("4.修改学生信息\n");
printf("5.打印学生信息\n");
printf("0.结束程序\n");
printf("请输入操作指令:");
scanf("%d ",&input);
printf("请输入学生学号:");
scanf("%d",&num);
switch(input) {
case 1:
DeletData(pStu,num);
break;
case 2:
CrateData(pStu);
break;
case 3:
ChcekData(pStu,num);
break;
case 4:
ReviseData(pStu,num);
break;
case 5:
PrintfData(pStu,num);
break;
case 0:
exit(0);
default:
printf("请输入正确的数字!\n");
break;
}
}
return 0;
}
void DeletData(Student *pStu,int num) {
Student *temp=(Student*)malloc(sizeof(Student));
temp=ChcekData(pStu,num);
temp->prior->next=temp->next;
temp->next->prior=temp->prior;
}
Student* ChcekData(Student *p,int num) {
while(p) {
if(p->num==num)
return p;
else
p=p->next;
}
printf("查无此人\n");
}
void CrateData(Student *pStu) { //pStu是头指针
Student *n_student;
n_student=(Student*)malloc(sizeof(Student));
printf("请输入学生的姓名:");
scanf("%s",&n_student->name);
printf("\n请输入学生的学号:");
scanf("%d",&n_student->num);
printf("\n请输入学生的年龄:");
scanf("%d",&n_student->age);
printf("\n请输入学生的性别(1表示男/2表示女):");
scanf("%d",&n_student->grade);
printf("\n请输入学生的籍贯:");
scanf("%s",&n_student->natuve_place);
printf("\n请输入学生的邮箱:");
scanf("%s",&n_student->email);
printf("\n请输入学生的QQ:");
scanf("%s",&n_student->QQ);
printf("\n请输入学生的学院:");
scanf("%s",&n_student->academy);
printf("\n请输入学生的年级:");
scanf("%d",&n_student->grade);
n_student->prior=pStu->prior;
pStu->prior->next=n_student;
n_student->next=pStu;
pStu->prior= n_student;
printf("\n成创建!\n");
}
void ReviseData(Student *pStu,int num) {
while(pStu->num==num);
printf("请输入学生的姓名:");
scanf("%s",&pStu->name);
printf("\n请输入学生的学号:");
scanf("%d",&pStu->num);
printf("\n请输入学生的年龄:");
scanf("%d",&pStu->age);
printf("\n请输入学生的性别(1表示男/2表示女):");
scanf("%d",&pStu->grade);
printf("\n请输入学生的籍贯:");
scanf("%s",&pStu->natuve_place);
printf("\n请输入学生的邮箱:");
scanf("%s",&pStu->email);
printf("\n请输入学生的QQ:");
scanf("%s",&pStu->QQ);
printf("\n请输入学生的学院:");
scanf("%s",&pStu->academy);
printf("\n请输入学生的年级:");
scanf("%d",&pStu->grade);
}
void ReviseData(Student *,int);
函数定义没写完,这个昨天的问题已经有人解答了。
页:
[1]