434773632 发表于 2021-10-20 18:35:41

为什运行不了啊

#include"stdio.h"
#include"stdlib.h"
#include"string.h"
typedef struct Stu
{
        int num;
        char name;
        char sex;
        int age;
        int grade;
}student;

typedef struct sqlist
{
        student *elem;
        int len;
}sqlist;


void creatseqlist(sqlist *L);
void printseqlist(sqlist L);
void sortseqlist(sqlist *L);
void splitseqlist(sqlist L, sqlist *boy, sqlist *girl);

void creatseqlist(sqlist *L)
{
        int i, n;
        L->elem=(student *)malloc(n*sizeof(student));
        scanf("%d", &n);
        (L->len)=n;
        for(i=0;i<n;i++)
        {
                int i;
                scanf("%d %s %s %d %d",&(L->elem.num), &(L->elem.name), &(L->elem.sex), &(L->elem.age), &(L->elem.grade));
        }
        for(i=0;i<n;i++)
        {
                if(strcmp((L->elem).sex, "1")==0)
                {
                        strcpy((L->elem).sex,"男");
                }
                if(strcmp((L->elem).sex, "0")==0)
                {
                        strcpy((L->elem).sex,"女");
                }
        }
}

void printseqlist(sqlist L)
{
        int i;
        if((L.len)==0)
        {
                printf("无");
        }
        else
        {
                printf("考生号,姓名,性别,年龄,成绩\n");
                for(i=0;i<(L.len);i++)
                {
                        printf("%d,%s,%s,%d,%d\n",(L.elem).num, (L.elem).name, (L.elem).sex, (L.elem).age, (L.elem).grade);
                }
        }
}

void sortseqlist(sqlist *L)
{
        int i, j;
        student temp;
        for(i=0;i<(L->len);i++)
        {
                for(j=i+1;j<(L->len);j++)
                {
                        if((L->elem).grade<(L->elem).grade)
                        {
                                temp=(L->elem);
                                (L->elem)=(L->elem);
                                (L->elem)=temp;
                        }
                        if((L->elem).grade==(L->elem).grade)
                        {
                                if((L->elem).num>(L->elem).num)
                                temp=(L->elem);
                                (L->elem)=(L->elem);
                                (L->elem)=temp;
                        }
                }
        }
}

void splitseqlist(sqlist L, sqlist *boy, sqlist *girl)
{
        int j,m,i;
        j=0; m=0;
        boy->elem=(student *)malloc(5*sizeof(student));
        girl->elem=(student *)malloc(5*sizeof(student));
        for(i=0;i<(L.len);i++)
        {
                if(strcmp((L.elem).sex, "男")==0)
                {
                        boy->elem=L.elem;
                        j++;
                }
                if(strcmp((L.elem).sex, "女")==0)
                {
                        girl->elem=L.elem;
                        m++;
                }
               
        }
        boy->len=j;
        girl->len=m;
}

int main()
{
        sqlist L;
        sqlist boy;
        sqlist girl;
        creatseqlist(&L);
        printseqlist(L);
        printf("\n排序后");
        sortseqlist(&L);
        printseqlist(L);
        splitseqlist(L, &boy, &girl);
        printf("男生信息");
        printseqlist(boy);
        printf("女生信息");
        printseqlist(girl);
        return 0;
}
一开始可以运行,后来就运行不了了,哪位大神给我看看

434773632 发表于 2021-10-20 18:36:18

输入信息都不行
页: [1]
查看完整版本: 为什运行不了啊