c语言的顺序表 没有打完

学生的信息录入不进去 求大佬解答

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct{
    char name[20];
    char no[8];
    double price;
}student;
typedef struct{
    student *elem[100];
    int length;
}sqlist;
int initlist(sqlist *L)
{
    if(!L->elem)
        return 0;
    L->length=0;
    return 1;
}
int input(int a,sqlist *L)
{
    int b;
    for(b=0;b<a;b++)
    {
        printf("第%d个学生\n",b+1);
        printf("姓名:");
        scanf("%s",L->elem[b]->name);
        printf("学号:");
        scanf("%s",L->elem[b]->no);
        printf("成绩");
        scanf("%lf",&L->elem[b]->price);
    }
}
void getelem(int a,sqlist *L)
{
    for(int c=0;c<a;c++)
    {
        printf("姓名: %s\n",L->elem[c]->name);
        printf("学号: %s\n",L->elem[c]->no);
        printf("成绩: %lf\n",L->elem[c]->price);
    }
}
int search(sqlist *L,char str[])
{
    for(int i=1;i<=L->length;i++)
    {
        if(strcmp(L->elem[i]->name,str)==0)
        return i;
    }
    return 0;
}
void output(int d,sqlist *L)
{
    printf("姓名: %s\n",L->elem[d]->name);
    printf("学号: %s\n",L->elem[d]->no);
    printf("成绩: %lf\n",L->elem[d]->price);
}
int main()
{
    sqlist L;
    int a,b,c,d,n;
    printf("1、构造顺序表\n");
    printf("2、输入学生信息\n");
    printf("3、显示学生表信息\n");
    printf("4、根据姓名进行查找\n");
    printf("5、显示指定位置的学生信息\n");
    printf("6、在指定位置插入学生信息\n");
    printf("7、删除指定位置的学生记录\n");
    printf("8、统计学生人数\n");
    printf("9、退出\n");
    while(1){
        printf("请选择:");
        scanf("%d",&n);
        if(n==1)
        {
            a=initlist(&L);
            if(a==0)
                printf("创建失败!\n");
            else
                printf("创建成功!\n");
        }
        else if(n==2)
        {
            printf("请输入要录入的学生人数:");
            scanf("%d",&a);
            b=input(a,&L);
            L.length=n;
        }
        else if(n==3)
        {
            getelem(a,&L);
        }
        else if(n==4)
        {
            char str[20];
            printf("请输入需要查找的名字: ");
            scanf("%s",str);
            d=search(&L,str);
            output(d,&L);
        }
    }
}

scanf("%lf",&L->elem[b]->price);把后面整个括起来试试

scanf("%lf",&(L->elem[b]->price));

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^