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

关于#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日