^334 2022-02-06 17:12 采纳率: 88.5%

# 谁能帮我看看增添链表错哪里了

###### 我想要达到的结果
``````
```c

#include<stdio.h>
#include<stdlib.h>
typedef struct list {
int date;
struct list* next;

}node;
int main()
{
int a;
int b;
int i, j;
int x, z;
int count;
//链表的创立
printf("请输入链表节点为几\n");
scanf_s("%d", &a);
printf("请输入链表数据\n");
int* p = (int*)malloc(a * sizeof(int));
for (j = 0; j < a; j++)
{
scanf_s("%d", &p[j]);
}
node* head = (node*)malloc(sizeof(node));
for (i = 0; i < a; i++)
{
node* node1 = (node*)malloc(sizeof(node));
node1->date = p[i];

}
//链表的遍历
node* h;
printf("你输入的链表如下\n");
while (h != NULL)
{
printf("%d    ", h->date);
h = h->next;
}
//链表的插入
printf("请输入插在第几个数后面");
scanf_s("%d", &x);
printf("请输入插入的数");
scanf_s("%d", &z);
count = 0;
while (h != NULL && count < x)
{
count++;
h = h->next;

if (count == x)
{

node* node1 = (node*)malloc(sizeof(node));
node1->date = z;
}

}
while (h != NULL)
{
printf("%d    ", h->date);
h = h->next;
}

}
``````

```

• 写回答

#### 1条回答默认 最新

• qzjhjxj 2022-02-06 21:26
关注

修改处见注释，供参考：

``````#include<stdio.h>
#include<stdlib.h>
typedef struct list {
int date;
struct list* next;
}node;
int main()
{
int a;
int b;
int i, j;
int x, z;
int count;
//链表的创立
printf("请输入链表节点为几\n");
scanf_s("%d", &a);
printf("请输入链表数据\n");
int* p = (int*)malloc(a * sizeof(int));
for (j = 0; j < a; j++)
{
scanf_s("%d", &p[j]);
}
node* head = (node*)malloc(sizeof(node));
for (i = 0; i < a; i++)
{
node* node1 = (node*)malloc(sizeof(node));
node1->date = p[i];
}
//链表的遍历
node* h,*hre;   //修改
printf("你输入的链表如下\n");
while (h != NULL)
{
printf("%d    ", h->date);
h = h->next;
}
printf("\n");
//链表的插入
hre = head;      //修改
do{                                    //修改
printf("请输入插在第几个数后面");
scanf_s("%d", &x);
}while(x <= 0 || x > a);               //修改
printf("请输入插入的数");
scanf_s("%d", &z);
count = 0;
while (h != NULL && count < x)  //修改
{
count++;
hre = h;                    //修改
h = h->next;
}                                //修改
node* node1 = (node*)malloc(sizeof(node));
node1->date = z;
node1->next = hre->next; //修改
hre->next = node1;        //修改

while (h != NULL)
{
printf("%d    ", h->date);
h = h->next;
}
return 0;
}

``````
本回答被题主选为最佳回答 , 对您是否有帮助呢?
评论

• 系统已结题 2月16日
• 已采纳回答 2月8日
• 专家修改了标签 2月6日
• 创建了问题 2月6日

#### 悬赏问题

• ¥50 python如何用抖音这个接口输入抖音ID查询用户信息
• ¥30 关于移动Web网页使用TinyMCE富文本编辑器上传图片后的光标定位、压缩等几个问题如何解决：
• ¥25 activeMq在同服务器centos8下消费很慢
• ¥20 为什么zynq CAN IP 无法进入config配置模式，XCan_SelfTest函数失效？
• ¥15 Pycharm中程序直接运行可以但进入调试报错
• ¥15 MATLAB动图问题
• ¥15 有段代码不知道怎么理解，const isToken = (config.headers || {}).isToken === false
• ¥15 我的显卡支持CUDA最高版本是12.3，这个版本也支持VS 2022 17.0这种情况下如果我想下载CUDA11.8，需要下载旧版本的VS2022吗
• ¥15 pointnet2包安装
• ¥20 射频功率问题，解答者有酬谢！