Math Dash 2021-06-09 22:08 采纳率: 85.4%
浏览 28
已结题

这是代码,出现了错误,怎么修改怎么输出?

 

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 200
typedef struct
{
    char no[20];
    char name[50];
    float price;
}Elemtype;
typedef struct
{
    Elemtype *elem;
    int length;
}sleep;
void InitList(sleep *L)
{
    L->elem=(Elemtype*)malloc(MAXSIZE);
    if(!L->elem)
    {
        printf("储存分配失败!\n");
        system("pause");
        return;
    }
    L->length=0;
}
void GetElem(sleep *L,int i,Elemtype e)
{
    if((i<1)||(i>L->length))
    {
        printf("i值不合理!\n");
    }
    else
    {
        e=L->elem[i-1];
    }
}
void LocateElem(sleep *L,Elemtype *e)
{
    int i;
    for(i=0;i<L->length;i++)
    {
        if(L->elem[i]==e)
        {
            printf("%s\t%s\t%f\n",L->elem[i].name,L->elem[i].no,L->elem[i].price);
        }
    }
    i=NULL;
}
void ListInsert(sleep *L,int i,Elemtype e)
{
    if(i<0)
    {
        printf("i值不合法!\n");
    }
    if(i>L->length+1)
    {
        printf("数组已满!插入失败!\n");
    }
    if(L->length==MAXSIZE)
    {
        printf("存储空间已满!插入失败!\n");
    }
    int j;
    for(j=L->length-1;j>=i-1;j--)
    {
        L->elem[j+1]=L->elem[j];
        L->elem[i-1]=e;
        L->length++;
    }
    j=NULL;
}
Elemtype data[]=
{
    {"000032","小马宝莉",20},
    {"000032","转生成蜘蛛又怎样",60}
};
int main(int argc, char *argv[])
{
    sleep Sleep;
    InitList(&Sleep);
    int i=0;
    ListInsert(&Sleep,i,data);
    LocateElem(&Sleep,&data);
    system("pause");
    return 0;
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-06-10 01:51
    关注

    修改如下,供参考:

    #include <stdio.h>
    #include <stdlib.h>
    #define MAXSIZE 200
    
    typedef struct
    {
        char  no[20];
        char  name[50];
        float price;
    }Elemtype;
    
    typedef struct
    {
        Elemtype *elem;
        int     length;
    }sleep;
    
    void InitList(sleep *L)
    {
        L->elem=(Elemtype*)malloc(MAXSIZE*sizeof(Elemtype));
        if(!L->elem)
        {
            printf("储存分配失败!\n");
            system("pause");
            return;
        }
        L->length=0;
    }
    void GetElem(sleep *L,int i,Elemtype e)
    {
        if((i<1)||(i>L->length))
        {
            printf("i值不合理!\n");
        }
        else
        {
            e=L->elem[i-1];
        }
    }
    void LocateElem(sleep *L,Elemtype e)
    {
        int i;
        for(i=0;i<L->length;i++)
        {
            if(strcmp(L->elem[i].name,e.name)==0)//if(L->elem[i].no==e)
            {
                printf("%-20s\t%-50s\t%.2f\n",L->elem[i].no,L->elem[i].name,L->elem[i].price);
                break;
            }
        }
    }
    
    void ListInsert(sleep *L,int i,Elemtype e)
    {
        if(i<0 || i>L->length+1)
        {
            printf("i值不合法!\n");
            return;
        }
        if(L->length==MAXSIZE)
        {
            printf("存储空间已满!插入失败!\n");
            return;
        }
        int j;
        if(L->length==0){
            L->elem[0]=e;
            L->length++;
            return;
        }
        for(j=L->length;j>=i-1;j--)
            L->elem[j]=L->elem[j-1];
        L->elem[i-1]=e;
        L->length++;
    }
    
    void PrintList(sleep *L)
    {
        int i;
        if(L->length==0)return;
        for(i=0;i<L->length;i++)
            printf("%-20s\t%-50s\t%.2f\n",L->elem[i].no,L->elem[i].name,L->elem[i].price);
    }
    
    Elemtype data[]=
    {
        {"000032","小马宝莉",20},
        {"000033","转生成蜘蛛又怎样",60}
    };
    
    int main(int argc, char *argv[])
    {
        sleep Sleep;
        InitList(&Sleep);
        int i,j;
        for(i=0,j=0;i<6;++i,++j,j>1?(j=0):j)
              ListInsert(&Sleep,i+1,data[j]);
        PrintList(&Sleep);
        LocateElem(&Sleep,  data[1]);
        
        return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月19日
  • 已采纳回答 7月19日

悬赏问题

  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。