- 论坛徽章:
- 0
|
自学C到现在,这是我写的代码量最多的一段了,我可以在main函数内完成排序,但是当我想把排序单独用一个函数sort处理时,程序老是出错,向大神们求教啊!(我看了错误提示自己估计是红色区域出错了,不过自己不清楚原因)
# include <stdio.h>
# include <malloc.h>
void sort(struct student * p, int l)
{
struct student t;
int i, j;
for(i = 0; i <= l-1; ++i)
{
for (j = 0; j <= l-1-i; ++j)
if (p[j].score < p[j+1].score)
t = p[j];
p[j] = p[j+1];
p[j+1] = t;
}
}
struct student
{
int num;
char name[100];
char sex;
float score;
};
int main (void)
{
int i;
int len;
struct student * pArr;
printf("请输入学生个数:");
scanf("%d", &len);
pArr = (struct student *)malloc(len * sizeof(struct student));
for (i = 1; i <= len; ++i)
{
printf("请输入第%d个学生信息:\n", i);
scanf("%d %s %c %f", &pArr.num, pArr.name, &pArr.sex, &pArr.score);
printf("\n");
}
sort(pArr, len);
for (i = 1; i <= len; ++i)
{
printf("输出的是成绩第%d名学生信息:\n", i);
printf("%d %s %c %f", pArr.num, pArr.name, pArr.sex, pArr.score);
printf("\n");
}
return 0;
}
|
|