c语言编程问题,不知道错在哪里?
/*学号:**姓名:**日期:2020-02-21内容:结构体,链表,指针*/#include<stdio.h>#include<malloc.h>structstud/...
/*
学号:**
姓名:**
日期:2020-02-21
内容:结构体,链表,指针
*/
#include<stdio.h>
#include<malloc.h>
struct stud //学生类型
{
char num[11];//学号
char name[20];//姓名
struct stud* next; //指向一个学生
};
void InitList(struct stud *&L) //初始化链表,L为链表头节点,不存放学生数据
{
L= (struct stud *)malloc(sizeof(struct stud));
L->next = NULL;
}
void CreateStu(struct stud *&stu) //添加一个学生信息
{
stu = (struct stud*)malloc(sizeof(struct stud));
printf("请输入学生信息:");
scanf("%s %s", stu->num, stu->name);//输入学号和姓名时,中间隔一个tab键
stu->next = NULL;
}
void DispList(struct stud *L)//输出链表
{
struct stud* s;
if (L == NULL || L->next == NULL)
{
printf("链表为空,没有数据!\n");
}
else
{
printf("链表数据如下:\n");
s = L->next;
while (s != NULL)
{
printf("%s %s\n", s->num, s->name);
s = s->next;
}
printf("\n");
}
}
void main()
{
struct stud* head = NULL, * p1, * p2, * p3;
while (1)
{
int n;
printf("\n");
printf(" 0.链表初始化\n");
printf(" 1.创建第一个学生\n");
printf(" 2.创建第二个学生\n");
printf(" 3.创建第三个学生\n");
printf(" 4.构建学生列表\n");
printf(" 5.输出学生列表\n");
printf(" -1.退出\n");
printf("请选择功能选项:");
scanf("%d", &n);
switch (n)
{
case 0:
InitList(head);
printf("链表初始化成功\n");
break;
case 1:
CreateStu(p1);
printf("学生创建成功\n");
break;
case 2:
CreateStu(p2);
printf("学生创建成功\n");
break;
case 3:
CreateStu(p3);
printf("学生创建成功\n");
break;
case 4:
head->next = p1;
p1->next = p2;
p2->next = p3;
printf("链表构建成功\n");
break;
case 5:
DispList(head);
break;
case -1:
return;
break;
default:printf("输入有误,请重新输入!\n");
}
}
} 展开
学号:**
姓名:**
日期:2020-02-21
内容:结构体,链表,指针
*/
#include<stdio.h>
#include<malloc.h>
struct stud //学生类型
{
char num[11];//学号
char name[20];//姓名
struct stud* next; //指向一个学生
};
void InitList(struct stud *&L) //初始化链表,L为链表头节点,不存放学生数据
{
L= (struct stud *)malloc(sizeof(struct stud));
L->next = NULL;
}
void CreateStu(struct stud *&stu) //添加一个学生信息
{
stu = (struct stud*)malloc(sizeof(struct stud));
printf("请输入学生信息:");
scanf("%s %s", stu->num, stu->name);//输入学号和姓名时,中间隔一个tab键
stu->next = NULL;
}
void DispList(struct stud *L)//输出链表
{
struct stud* s;
if (L == NULL || L->next == NULL)
{
printf("链表为空,没有数据!\n");
}
else
{
printf("链表数据如下:\n");
s = L->next;
while (s != NULL)
{
printf("%s %s\n", s->num, s->name);
s = s->next;
}
printf("\n");
}
}
void main()
{
struct stud* head = NULL, * p1, * p2, * p3;
while (1)
{
int n;
printf("\n");
printf(" 0.链表初始化\n");
printf(" 1.创建第一个学生\n");
printf(" 2.创建第二个学生\n");
printf(" 3.创建第三个学生\n");
printf(" 4.构建学生列表\n");
printf(" 5.输出学生列表\n");
printf(" -1.退出\n");
printf("请选择功能选项:");
scanf("%d", &n);
switch (n)
{
case 0:
InitList(head);
printf("链表初始化成功\n");
break;
case 1:
CreateStu(p1);
printf("学生创建成功\n");
break;
case 2:
CreateStu(p2);
printf("学生创建成功\n");
break;
case 3:
CreateStu(p3);
printf("学生创建成功\n");
break;
case 4:
head->next = p1;
p1->next = p2;
p2->next = p3;
printf("链表构建成功\n");
break;
case 5:
DispList(head);
break;
case -1:
return;
break;
default:printf("输入有误,请重新输入!\n");
}
}
} 展开
2个回答
2020-02-25
展开全部
把主函数的返回值限定符改为int,然后在结尾返回0即可,试试吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询