devc++编译没有报错,但是运行后出来横线

本来是想利用快速排序实现对学习成绩的升序输出,算法时间复杂度为nlogn
#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct Node{ int num; char name[20]; int sex; char major[20]; int bj; float grade;};typedef struct{ struct Node stu[1000]; int length;}sqlist; int Partition(sqlist *L,int low,int high){ L->stu[0]=L->stu [low]; int g=L->stu[low].grade; while(low!=high) //判断条件也可以写成low<high { while(low<high&&L->stu[high].grade>=g){ high--; } L->stu[low]=L->stu[high]; while(low<high&&L->stu[low].grade<=g){ low++; } L->stu[high]=L->stu[low]; } L->stu[low]=L->stu[0]; return low;}void qsort(sqlist *L,int low,int high){ if(low<high) { int partition=Partition(L,low,high);//获取low=high时的位置 qsort(L,low,partition-1);//递归右子数组 qsort(L,partition+1,high);//递归左子数组 }}void quicksort(sqlist *L){ qsort(L,0,L->length-1);}int main(){ int n; Node stu[1000]; sqlist L=(sqlist)malloc(sizeof(sqlist)); printf("学生总人数为:"); scanf("%d",&n); printf("学号和绩点依次为:"); for(int i=0;i<n;i++){ scanf("%d %d",&L->stu[i].num ,&L->stu[i].grade); } quicksort(L); for(int i=1;i<=L->length;i++){ printf("%f\n",L->stu[i].grade); } return 0; }

密密麻麻全是字,没办法看