ShagouTT
鸡踢西
2021-01-27 15:45

c语言新手一枚,实在是不清楚为什么这个程序会报错,有大神可以帮我开导一下吗{哭了}

  • c语言

跟着郝斌老师的课,想写一小段代码,定义一个结构体,让用户输入学生个数,然后输入学生年龄、编号、成绩,进行冒泡排序,然后进行输出,但是不知道为什么会提示错误:

  E0109    明显调用的表达式前的括号必须具有(指针)函数类型    


 C2064    项不会计算为接受 347 个参数的函数     ,实在不知道是出了什么问题。。有大神可以帮我开导一下吗。。。感谢。。。

#include <stdio.h>
#include <malloc.h>

struct Student
{
 int age;
 int number;
 float score;
};

void InputStudent(struct Student**pArr2,int* len2)
{
 int i;

 for (i = 0; i < *len2; ++i)
 {
  printf("age=\n");
  scanf_s("%d", &(*pArr2)[i].age);
  printf("number = \n");
  scanf_s("%d", &(*pArr2)[i].number);
  printf("score = ");
  scanf_s("%f", &(*pArr2)[i].score);
 }

}

void Maopaopaixu(struct Student**pArr3,int* len3)
{
 int i, j;
 struct Student t;

 for (i = 0; i < *len3 - 1; ++i)
 {
  for (j = 0; j < *len3 - 1 - i; ++j)
  {
   if ((*pArr3)[i].score > (*pArr3)[i].score)
   {
    t = (*pArr3)[i]
    (*pArr3)[i] = (*pArr3)[i + 1];
    (*pArr3)[i + 1] = t;
   }
  }
 }

}

void OutputStudent(struct Student**pArr4,int* len4)
{
 int i;

 for (i = 0; i < *len4 - 1; ++i)
 {
  printf("name = %d\n", (*pArr4)[i].age);
  printf("number = %d\n", (*pArr4)[i].number);
  printf("score = %f\n", (*pArr4)[i].score);
 }
}

int main(void)
{
 int len1;
 struct Student* pArr;

 printf("请输入学生的个数 :\n");
 scanf_s("%d", &len1);
 pArr = (struct Student*)malloc(sizeof(struct Student) * len1);

 InputStudent(&pArr,&len1);
 Maopaopaixu(&pArr,&len1);
 OutputStudent(&pArr,&len1);

 return 0;
}

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答