秋生@ 2021-11-06 18:57 采纳率: 50%
浏览 9
已结题

关于#c##的问题,请各位专家解答!(输出过程将前面两个字符消失了,指点指点哪里出错了)


#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct st {
    char data;
    struct st* next;
}NODE,*PNODE;
PNODE creat_list(int length)
{
    PNODE pHead=(PNODE)malloc(sizeof(NODE)*1);
    pHead->next=NULL;
    if(NULL==pHead)
    {
        printf("动态内存分配失败!程序终止\n");
        exit(-1);
    }
    char val; 
    PNODE pTail=pHead;
    pTail->next=NULL;
   for(int j=0;j<length+1;j++)
   {
       PNODE pNew=(PNODE)malloc(sizeof(NODE)*1);
       if(NULL==pNew)
    {
        printf("动态内存分配失败!程序终止\n");
        exit(-1);
    }
    scanf("%c",&val);
       pNew->data=val;
       pTail->next=pNew;
       pNew->next=NULL;
       pTail=pNew; 
   }
   return pHead;
}
//按位查找
void insert_list(PNODE pHead,int pos,char val )
{
    int i=0;
    PNODE p=pHead;
    while(NULL!=p&&i<pos-1)
    {
        p=p->next;
        i++;
    }
    if(i>pos-1||NULL==p)
    printf("location error");
    PNODE pNew=(PNODE)malloc(sizeof(NODE));
    if(NULL==pNew)
    {
        printf("动态内存分配失败!\n");
        exit(-1);
    }
    pNew->data=val;
    PNODE q=p->next;
    p->next=pNew;
    pNew->next=q;
    while(p)
    {
        printf("%c",p->data);
        p=p->next;
    }
    printf("\n");

}
int main()
{
    PNODE pHead=NULL;//初始化头指针 
    int len,i;
    char x;//存储找到那个字符的值
    while(~scanf("%d %d %c",&len,&i,&x)){
         getchar();
        pHead=creat_list(len);
        insert_list(pHead,i,x);
        free(pHead);
    }
 } 

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月14日
    • 创建了问题 11月6日

    悬赏问题

    • ¥20 TEC-9的数据通路实验
    • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
    • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
    • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
    • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
    • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
    • ¥15 python爬取bilibili校园招聘网站
    • ¥30 求解达问题(有红包)
    • ¥15 请解包一个pak文件
    • ¥15 不同系统编译兼容问题