^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 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭