C4n 2021-03-17 12:28 采纳率: 80%
浏览 64
已结题

想知道我这个代码执行output之后为什么不会输出所有节点的数据?

软件:dev c++

方法:每次选择1后,输入学生学号信息,并输出已写入学号信息的所有学生的学号信息。

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define New_node (stu*)malloc(sizeof(stu))
typedef struct student
{
	int Student_ID;
	struct student *next;

}stu;
void input(stu*R) //输入学生信息 
{
	stu *p=New_node; //p作为新节点存放p的数据 
	printf("\n请输入十位数的学号:\n");
	scanf("%d",&p->Student_ID);
	p->next=NULL;
	R->next=p;
	R=p;
}
void output(stu *L)
{
	stu *p;
	p=L->next;
	while(p!=NULL)
	{
		printf("%d\n",p->Student_ID);
		p=p->next;
	}
	
}
main()
{
	stu *L=New_node;   
	L->next=NULL;     //建立头节点
	stu *R=L;         //尾指针指向头节点 
	while(1)
	{
		int i;
		printf("请输入选择\n"); 
		scanf("%d",&i);
		switch(i)
		{
			case 1:input(R);
		    case 2:output(L);
		}
		
	}
	
}
  • 写回答

4条回答 默认 最新

  • cpp_learners 2021-03-17 13:33
    关注

    你的插入方式有问题,下面是我给你改好的代码:

    void input(stu*R) //输入学生信息 
    {
    	stu *p = New_node; //p作为新节点存放p的数据 
    	printf("\n请输入十位数的学号:\n");
    	scanf_s("%d", &p->Student_ID);
    
    	while (R->next) R = R->next;	// 找到最后一个节点
    
    	p->next = NULL;
    	R->next = p;
    	//R = p;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月2日

悬赏问题

  • ¥15 准备学习小程序搭建,谁能手把手的教我啊?
  • ¥15 关于#嵌入式硬件#的问题:树莓派第一天重装配置python和opencv后第二天打开就成这样,瞎捣鼓搞出来文件夹还是没把原来的界面调回来
  • ¥20 Arduino 循迹小车程序电路出错故障求解
  • ¥20 Arduino 循迹小车程序电路出错故障求解
  • ¥100 AT89C52单片机C语言调试之后再回答
  • ¥15 AT89C52单片机C语言串口助手发送数据包返回值
  • ¥15 C++数组中找第二小的数字程序纠错
  • ¥15 wannier复现图像时berry曲率极值点与高对称点严重偏移
  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)
  • ¥15 DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI[/untitled30_war_e