使用结构体给学生信息排序
下面是我的代码,但是结果不正确,谁帮忙看下。#include <stdio.h>
#define N 16
typedef struct student
{
char num[10];
int s;
} STREC;
void fun(STREC a[N]);
int main()
{
STREC s[N] = { {"GA005", 85}, {"GA003", 76}, {"GA002", 96}, {"GA004, 85"}, {"GA001, 91"},
{"GA007, 72"}, {"GA008, 64"}, {"GA006, 87"}, {"GA015, 85"}, {"GA013, 91"}, {"GA012, 64"},
{"GA014, 91"}, {"GA011", 66}, {"GA017, 64"}, {"GA018, 64"}, {"GA016, 72"} };
int i;
FILE * out;
fun(s);
printf("The data after sorted:\n");
for (i = 0; i < N; i++)
{
if ((i) % 4 == 0) printf("\n");
printf("%s%6d", s[i].num, s[i].s);
}
printf("\n");
out = fopen("out.dat", "w");
for (i = 0; i < N; i++)
{
if ( (i) % 4 == 0 && i ) fprintf(out, "\n");
fprintf(out, "%4d ", s[i].s);
}
fprintf(out, "\n");
fclose(out);
}
void fun(STREC a[N])
{
int i , j ; STREC temp;
for (i = 0; i < N - 1; i++)
{
for (j = i + 1; j < N ; j++)
if (a[i].s < a[j].s )
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}