^334 2022-02-03 23:14 采纳率: 88.5%
浏览 34
已结题

谁能帮我看看我怎么不能在链表里插入数据呀please

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果


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

}list;
int main()
{
    struct listnode* p;
    int x;
    int a;
    int b;
    int count;
    list node1 = { 10,NULL };
    list node2 = { 20,NULL };
    list node3 = { 30,NULL };
    list node4 = { 40,NULL };
    node1.next = &node2;
    node2.next = &node3;
    node3.next = &node4;
    p = &node1;
    while (p != NULL)
    {
        printf("%d\n", p->date);
        p = p->next;

    }
    
        printf("请输入需要查找的数");
        scanf_s("%d", &x);
        p = &node1;
        while (p != NULL)
        {
            if (x == p->date)
            {
                printf("    找到啦      %d\n", p->date);
            }
            p = p->next;
        }
        printf("请增加一个数\n");
        scanf_s("%d", &a);
        printf("增加到第几个数后面\n");
        scanf_s("%d", &b);
        p = &node1;
        while (p != NULL && b <= 4)
        {
            count = 0;
            if (p != NULL&&count<=b)
            {
                count++;
                p = p->next;
            }
            list* h;
            h =  (list *) malloc(sizeof(list));
            h->date = a;
            h->next = p->next;
            p->next = h;
        }
        while (p != NULL)
        {
            printf("%d\n", p->date);
            p = p->next;

        }

    


}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-02-04 00:54
    关注

    改动处见注释,供参考:

    #include<stdio.h>
    #include<stdlib.h>
    typedef struct listnode{
        int date;
        struct listnode* next;
    
    }list;
    int main()
    {
        struct listnode* p;
        int x;
        int a;
        int b;
        int count;
        list node1 = { 10,NULL };
        list node2 = { 20,NULL };
        list node3 = { 30,NULL };
        list node4 = { 40,NULL };
        node1.next = &node2;
        node2.next = &node3;
        node3.next = &node4;
        p = &node1;
        while (p != NULL)
        {
            printf("%d\n", p->date);
            p = p->next;
    
        }
        printf("请输入需要查找的数");
        scanf("%d", &x);
        p = &node1;
        while (p != NULL)
        {
            if (x == p->date)
            {
                printf("    找到啦      %d\n", p->date);
                break;                    //修改
            }
            p = p->next;
        }
        if(p==NULL)                       //修改
            printf("未找到\n");           //修改
        printf("请增加一个数\n");
        scanf("%d", &a);
        do{                                 //修改
            printf("增加到第几个数后面\n");
            scanf("%d", &b);
        }while(b < 1 || b > 4);             //修改
        p = &node1;
        count = 1;           //修改
        while (p != NULL && count < b) //while (p != NULL && b <= 4)
        {
           //if (p != NULL&&count<=b)
           //{
               count++;
               p = p->next;
           //}
        }
        list* h;
        h =  (list *) malloc(sizeof(list));
        h->date = a;
        h->next = p->next;
        p->next = h;
        //}
        p = &node1;   //修改
        while (p != NULL)
        {
           printf("%d\n", p->date);
           p = p->next;
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月16日
  • 已采纳回答 2月8日
  • 创建了问题 2月3日

悬赏问题

  • ¥15 MATLAB动图输出问题
  • ¥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包安装