c语言指针问题,求大神,新手。

#include
#include
#include

struct Student
{
int age;
char name[100];
float score;
};

void Ininformation(int * IP_len, struct Student * IP_arr)
{
int i;

for (i = 0; i < *IP_len; ++i)
{
printf("请输入%d个学生信息: \n", *IP_len);
printf("请输入第%d个学生信息\n", i + 1);
printf("年龄 = ");
scanf_s("%d", &IP_arr[i].age);

printf("分数 = ");
scanf_s("%f", &IP_arr[i].score);

printf("姓名 = ");
scanf_s("%s", IP_arr[i].name);

}
}

void Sortinformation(int * SP_len, struct Student * SP_arr)
{
int i, j;
struct Student t;

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

void Outinformation(int * OP_len, struct Student * OP_arr)
{
int i;

for (i = 0; i < *OP_len; ++i)
{
printf("第%d个学生的信息是:\n", i + 1);
printf("年龄 = %d\n", OP_arr[i].age);
printf("姓名 = %s\n", OP_arr[i].name);
printf("分数 = %f\n", OP_arr[i].score);
printf("\n\n");
}
}

int main(void)
{
int len;
struct Student * p_arr;

printf("请输入总共有几个学生:\n");
printf("人数 = ");
scanf_s("%d", &len);

p_arr = (struct Student *)malloc(len * sizeof(struct Student));

Ininformation(&len, p_arr);
Sortinformation(&len, p_arr);
Outinformation(&len, p_arr);

system("pause");
return 0;
}
存在错误,但是编译可以通过,求大神帮看下,谢谢。图片说明

for循环代码补全,求补上。

运行了你的程序,没有任何错误啊。

 请输入总共有几个学生:
人数 = 3
请输入3个学生信息:
请输入第1个学生信息
年龄 = 20
分数 = 88.1
姓名 = 张三
请输入3个学生信息:
请输入第2个学生信息
年龄 = 21
分数 = 100
姓名 = 李四
请输入3个学生信息:
请输入第3个学生信息
年龄 = 20
分数 = 71.123
姓名 = 马五
第1个学生的信息是:
年龄 = 20
姓名 = 张三
分数 = 88.099998


第2个学生的信息是:
年龄 = 21
姓名 = 李四
分数 = 100.000000


第3个学生的信息是:
年龄 = 20
姓名 = 马五
分数 = 71.123001


请按任意键继续. . .

scanf_s("%s", IP_arr[i].name);把这一句的“_s”去掉,用C的标准库函数试试。