pythonsrj 发表于 2019-9-13 11:24:57

学生管理系统

我这个,输出的函数报错了,
(core dumped)
麻烦各位指点一下,谢谢
源码如下:

struct Student
{
    int age;
    char name;
    float score;
};

void inputst()
{
    int i,num;
    struct Student *pArr;
    printf("请输入学生个数num= ");
    scanf("%d",&num);
    pArr=(struct Student*)malloc(num*sizeof(struct Student));
    for(i=0;i<num;i++)
    {
      printf("输入第%d个学生的信息:\n",i+1);
      printf("年龄:");
      scanf("%d",&pArr.age);

      printf("姓名:");
      scanf("%s",pArr.name);
      
      printf("分数:");
      scanf("%f",&pArr.score);
    }
}

/*void sort(struct Student *pArr,int num)
{
    int i,j;
    struct Student t;
    for(i=0;i<num-1;i++)
    {
      for(j=0;j<num-i-1;j++)
      {
            if(pArr.score>pArr.score)
            {
                t=pArr;
                pArr=pArr;
                pArr=t;
            }
      }
    }
}*/
void outputst(struct Student *pArr,int num)
{
    int i;
    printf("学生成绩排列如下:");
    for(i=0;i<num;i++)
    {
      printf("成绩:%d",pArr.age);
      printf("姓名:%s",pArr.name);
      printf("分数:%f",pArr.score);
    }
}
int main(void)
{
    int num;
    struct Student *pArr;
    inputst();
    //sort(pArr,num);
    outputst(pArr,num);
    return 0;
}

pythonsrj 发表于 2019-9-13 11:25:32

头文件我都加了

pythonsrj 发表于 2019-9-13 11:57:47

解决了

pythonsrj 发表于 2019-9-13 11:58:48

num越界了,num在inputst函数里面被用完就释放掉了,所以我把他放在主函数里面,就可以了
页: [1]
查看完整版本: 学生管理系统