# 78.对学生成绩进行排序

144人阅读 评论(0)

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<alloc.h>
#include<string.h>
#define N 10
typedef struct ss
{
char num[10];
int s;
}STU;
STU *fun(STU a[], int m)
{
STU b[N], *t;
int i, j, k;
t = (STU *)calloc(sizeof(STU), m);
for (i = 0;i < N;i++)
b[i] = a[i];
for (k = 0;k < m;k++)
{
for (i = j = 0;i < N;i++)
if (b[i].s>b[j].s)
j = i;
t[k] = b[j];
b[j].s = 0;
}
return t;
}
outresult(STU a[], FILE *pf)
{
int i;
for (i = 0;i < N;i++)
fprintf(pf,"No=%s  Mark=%d\n", a[i].num, a[i].s);
fprintf(pf, "\n\n");
}
int main()
{
STU a[N] = { {"A01",81},{"A02",89},{"A03",66},
{"A04",87},{"A05",77},{"A06",90},
{"A07",79}, {"A08",61},{"A09",80},
{"A10",71} };
STU *pOrder;
int i, m;
printf("****The Original data****\n");
outresult(a, stdout);
printf("\nGive the number of student who have bettrer score:");
scanf("%d", &m);
while (m > 10)
{
printf("\nGive the number of the students who have detter score: ");
scanf("%d", &m);
}
pOrder = fun(a, m);
printf("****The Result****\n");
printf("The top :\n");
for (i = 0;i < m;i++)
printf("%s   %d\n", pOrder[i].num, pOrder[i].s);
free(pOrder);
system("pause");
return 0;

}



0
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：51685次
• 积分：2187
• 等级：
• 排名：第17983名
• 原创：176篇
• 转载：0篇
• 译文：0篇
• 评论：0条