嗨嗨嗨5749 2022-05-18 09:06 采纳率: 90%
浏览 19
已结题

C语言动态链表-程序

题目:把k的值插入到b前面,b是程序里面的数,程序里没有b,k插入到最后。
问题: 如果b是程序里第一个数,要求插入到第一个数前面,但是老是插到最后,求改正,其他插入没错。

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
struct student
{
    int data;
    struct student *next;
}a;
struct student *p,*q,*head,*l,*m,*t;
int main()
{
    l=q=head=&a;
    int n,i,c=0,k,b;
    printf("请输入n:\n");
    scanf("%d",&n);
    q->next=NULL;
    printf("输入链表:\n");
    for(i=0;i<n;i++)
    {
        p = (struct student*)malloc(sizeof(struct student));
        c++;
        if(c==1) t = head = l = p;
        scanf("%d",&p->data);
        q->next = p;
        q = q->next;
    }
    p->next=NULL;
    printf("请输入b,k的值:\n");
    scanf("%d%d",&b,&k);
    m = (struct student*)malloc(sizeof(struct student));
    m->data = k;
    c=0;
    printf("把值插入链表中为:\n");
    l = head->next;
    q = &a;
    for(i=0;i<n;i++)
    {
        c++;
        if(l->data == b&&c==1)
        {
            q->data = k;
            break;
        }
        else if(l->data == b)
        {
            head->next = m;
            m->next = l;
            break;
        }
        if(c==n-1)
        {
            p->next = m;
            m->next=NULL;
        }
        l = l->next;
        head = head->next;
    }
    for(i=0;i<n+2;i++)
    {
        printf("%d\n",t->data);
        t = t->next;
    }
    return 0;
}


  • 写回答

1条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 已结题 5月18日
      • 已采纳回答 5月18日
      • 创建了问题 5月18日

      悬赏问题

      • ¥15 C# 循环读写数据中途突然变慢
      • ¥100 CVI2012 做暗通道图像去雾思路详细步骤
      • ¥15 用Java实现双端队列
      • ¥150 ID3决策树实现分类
      • ¥15 multisim10安装后,找不到NI License Manager的程序来安装许可证
      • ¥15 C++银行卡系统 Help!
      • ¥15 R语言数据分析的相关问题
      • ¥15 模型导入SP后贴图纹理只有一个,拆了四张UV的,怎么解决?
      • ¥15 检索带order by 非常慢
      • ¥20 python 爬虫 token 加密方式