如下题:为什么单链表不能输出了?
#include <stdio.h>
#include <malloc.h>
typedef struct stu *list;
struct stu{
char name[10];
int age;
int class_num;
struct stu *next;
};
int main(void)
{
list st1 = NULL;
list head = NULL;
list p = NULL;
int num = 0;
for(num=0; num<3; num++)
{
st1 = (struct stu *)malloc(sizeof(struct stu));
if(head == NULL)
head = st1;
printf("请输入第%d个学生的姓名:",num+1);
scanf("%s",st1->name);
printf("请输入第%d个学生的年龄:",num+1);
scanf("%d",&st1->age);
printf("请输入第%d个学生的学号:",num+1);
scanf("%d",&st1->class_num);
st1 = st1->next;
st1 = NULL;
}
printf("学生的信息输出:\n");
for(num=0; num<3; num++)
{
printf("结果统计:第%d个学生姓名是:%s\t年龄是:%d\t 学号是:%d\n",4-num, head->name, head->age, head->class_num);
/*释放链表*/
p = head;
head = head->next;
free(p);
}
return 0;
}
#include <malloc.h>
typedef struct stu *list;
struct stu{
char name[10];
int age;
int class_num;
struct stu *next;
};
int main(void)
{
list st1 = NULL;
list head = NULL;
list p = NULL;
int num = 0;
for(num=0; num<3; num++)
{
st1 = (struct stu *)malloc(sizeof(struct stu));
if(head == NULL)
head = st1;
printf("请输入第%d个学生的姓名:",num+1);
scanf("%s",st1->name);
printf("请输入第%d个学生的年龄:",num+1);
scanf("%d",&st1->age);
printf("请输入第%d个学生的学号:",num+1);
scanf("%d",&st1->class_num);
st1 = st1->next;
st1 = NULL;
}
printf("学生的信息输出:\n");
for(num=0; num<3; num++)
{
printf("结果统计:第%d个学生姓名是:%s\t年龄是:%d\t 学号是:%d\n",4-num, head->name, head->age, head->class_num);
/*释放链表*/
p = head;
head = head->next;
free(p);
}
return 0;
}
...全文
相关推荐
C语言实现单链表逆序与逆序输出实例
`reversePrint2`函数中,我们先遍历整个链表将所有节点压入栈,再逐一弹出并输出。除了逆序输出,还有单链表的逆序操作,即改变链表本身,使其节点顺序反转。这里有两种常见的实现方法:1.
单链表递归输出
在这个场景中,我们关注的是如何通过递归的方式操作单链表,特别是实现单链表的输出以及逆置输出。首先,让我们理解递归的基本概念。
数据结构c语言版单链表的创建和输出
"这篇代码示例展示了如何使用C语言实现单链表的创建、输出、查找和删除操作。"在编程领域,数据结构是至关重要的一个部分,它涉及到如何有效地组织和存储数据以便进行高效的操作。单链表是数据结构中最基础
[C++]单链表的创建,合并和输出
本教程将详细讲解如何创建、合并以及输出单链表,同时也会涉及在Visual C++环境中进行程序设计的基础步骤。一、创建单链表创建单链表首先需要定义链表节点的结构体,通常包含数据域和指针域。
反序输出单链表
本题来源于《剑指offer》51页面试题5:从头到尾打印链表,原题如下: shuruyige


