雨与鱼余玉 2022-03-25 20:22 采纳率: 80%
浏览 47
已结题

大一小白c语言问题求解

问题遇到的现象和发生背景

在输出时没有集体的员工信息

问题相关代码,请勿粘贴截图 {
 char position[20];
    char number[20];
    char name[20];
    char level[20];
    int salary;
}ElemType;
typedef struct
{
    ElemType data[Maxsize];
    int length;
}SqList;

void CreateList(SqList*&L,ElemType a[],int n)
{
    int i=0,k=0;
    L=(SqList*)malloc(sizeof(SqList));
    while(i<n)
    {
        L->data[k]=a[i];
        k++;
        i++;
    }
    L->length=k;
}
int ListEmpty(SqList*L)
{
    return(L->length==0);
}
void DispList(SqList*L)
{
    int i;
    if(ListEmpty(L))
    {
        return;
    }
    printf("员工信息为:\n");
    for(i=0;i<L->length;i++)
    {
        printf("%s %s %s %s %s %d",L->data[i].position,L->data[i].number,L->data[i].name,L->data[i].level,L->data[i].salary);
        printf("\n");
    }
}
int main()
    {
        SqList*L;
        int k;
        struct stuff a[5]=
        {
            {"董事长","WL001","表姐","A5",10000},
            {"总经理","WL002","凌祯","A4",9000},
            {"董事长秘书","WL003","邹新文","A3",8500},
            {"秘书","WL004","李明","B6",7000},
            {"秘书","WL005","翁国栋","B1",5000}
        };
        CreateList(L,a,5);
        DispList(L);
        return 0;
}

运行结果及报错内容

(输出的内容只有这样的)
员工信息为:

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2022-03-25 20:34
    关注

    printf("%s %s %s %s %s %d",L->data[i].position,L->data[i].number,L->data[i].name,L->data[i].level,L->data[i].salary);
    这里你多了一个%s,导致薪水也用字符串输出而错误

    #define Maxsize 1000
    typedef struct stuff{
     char position[20];
        char number[20];
        char name[20];
        char level[20];
        int salary;
    }ElemType;
    typedef struct
    {
        ElemType data[Maxsize];
        int length;
    }SqList;
     
    void CreateList(SqList*&L,ElemType a[],int n)
    {
        int i=0,k=0;
        L=(SqList*)malloc(sizeof(SqList));
        while(i<n)
        {
            L->data[k]=a[i];
            k++;
            i++;
        }
        L->length=k;
    }
    int ListEmpty(SqList*L)
    {
        return(L->length==0);
    }
    void DispList(SqList*L)
    {
        int i;
        if(ListEmpty(L))
        {
            return;
        }
        printf("员工信息为:\n");
        for(i=0;i<L->length;i++)
        {
            printf("%s %s %s %s %d",L->data[i].position,L->data[i].number,L->data[i].name,L->data[i].level,L->data[i].salary);
            printf("\n");
        }
    }
    int main()
        {
            SqList*L = NULL;
            int k;
            struct stuff a[5]=
            {
                {"董事长","WL001","表姐","A5",10000},
                {"总经理","WL002","凌祯","A4",9000},
                {"董事长秘书","WL003","邹新文","A3",8500},
                {"秘书","WL004","李明","B6",7000},
                {"秘书","WL005","翁国栋","B1",5000}
            };
            CreateList(L,a,5);
            DispList(L);
            return 0;
    }
     
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 已采纳回答 3月25日
  • 创建了问题 3月25日

悬赏问题

  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化