C语言初学者渣渣求解!
#include<stdio.h>
#define N 10
struct student
{
int num;
char name[8];
char sex;
int age;
double grade;
};
void sort(struct student [],int n);
int main()
{
int i;
struct student x[N],*ptr[N];
for(i=0;i<N;i++)
scanf("%d %s %c %d %1f",&x[i].num,x[i].name,&x[i].sex,&x[i].age,&x[i].grade);
printf("排序前:\n");
for(i=0;i<N;i++)
{
ptr[i]=&x[i];
printf("%4d %10s %3c %4d %6.21f\n",ptr[i]->num,ptr[i]->name,ptr[i]-> sex,ptr[i]->age,ptr[i]->grade);
}
sort(x,N);
printf("排序后:\n");
for(i=0;i<N;i++)
printf("%4d %10s %3c %4d %6.21f\n",x[i].num,x[i].name,x[i].sex,x[i].age,x[i].grade);
return 0;
}
void sort(struct student x[],int n)
{
int i,j;
struct student t;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(x[j].grade>x[j+1].grade)
{
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}
}
真的不知道哪里不对劲,运行出来就是一堆乱码,烫烫烫~~
我这个就是纯粹抄书上的代码,连我之前抄错的边边角角都找出来了但是就是运行不对。
为啥啊?