结构体数组问题
#include<stdio.h>struct stu
{
int num;
char name[20];
char sex;
int age;
float grade;
} ;
int read(struct stu*p1)
{
scanf("%d%s%c%d%f",&p1->num,p1->name,&p1->sex,&p1->age,&p1->grade);
return 0;
}
int print(struct stu p2)
{
printf("%d %s %c %d %f\n",p2.num,p2.name,p2.sex,p2.age,p2.grade);
return 0;
}
int paixu(struct stu*(q[5]))
{
int i,j,t;
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
if (q[j]->grade>q[j+1]->grade )
{
t=q[i]->grade;
q[i]->grade=q[i+1]->grade;
q[i+1]->grade=t;
}
}
return 0;
}
int main()
{
int a;
struct stu s1[5],*n=s1;
struct stu*(s2[5]);
printf("请输入排序序列\n");
for(a=0;a<=4;a++)
read(n+a);
printf("请输出开始序列\n");
for(a=0;a<=4;a++)
print(s1[a]);
for(a=0;a<=4;a++)
s2[a]=&(s1[a]);
paixu(s2);
printf("请输出排序后序列\n");
for(a=0;a<=4;a++)
print(s1[a]);
return 0;
}
各位大神帮我看一下那里错了 题目是定义结构体数组,数组各项分别为学号,姓名,性别,年龄,成绩,数组长度为5;然后定义输入输出函数和按成绩排序函数,运行时先输出原来数组,在输出排序过的,我运行时乱码,谢谢各位大神