78.对学生成绩进行排序

原创 2015年07月07日 21:43:32

函数fun的功能是:对N名学生的学习成绩。按从高到低的顺序找出前m(m<=10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区域内,此存储区的首地址作为函数值返回。


#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;

}







冒泡排序:对成绩从低到高进行排序(JAVA)

数组排序:采用对象数组的方式来存储学生对象 缺点:人数变动时,程序需要较大修改 源代码 public class student { private String name; private ...
  • weixin_40119412
  • weixin_40119412
  • 2018年01月05日 15:34
  • 44

C++学生成绩排序

定义一个包含学生学号、姓名、年龄和三门课成绩的结构体,输入10个学生信息,并按总成绩由高到低的顺序排序并输出。...
  • HLK_1135
  • HLK_1135
  • 2015年12月13日 22:16
  • 3703

快速排序——成绩排序

题目描述:     有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。 输入: ...
  • zinss26914
  • zinss26914
  • 2012年10月09日 10:30
  • 1895

结构体数组排序 (学生信息 按成绩排序 )

/* name:学生信息结构体  按总分排序 (降序) */ #include int main() {   int i,j; typedef struct{ int grade; int age...
  • csdn17355456893
  • csdn17355456893
  • 2017年08月26日 21:27
  • 581

java集合框架之学生成绩排序

编写一个应用程序,用户分别从两个文本框输入学生的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行代码如下: import java.awt.BorderLayout;...
  • csdncongcong
  • csdncongcong
  • 2017年12月02日 16:44
  • 150

用Java编程把学生的成绩从高到低排序

把学生的成绩从高到低排序,源数据是一个数组
  • GuangXi_YangNan
  • GuangXi_YangNan
  • 2017年05月24日 11:37
  • 1162

java程序——用集合框架实现学生类的排序输出

编写一个学生成绩管理程序。 要求: 1. 应用集合 2. 按成绩的高低输出学生信息。 (用java实现)//导入包 import java.util.ArrayList; import jav...
  • firstchange
  • firstchange
  • 2016年11月29日 13:05
  • 1182

js实现成绩排序

在页面上有如下表格,当点击成绩时,所有行数根据成绩进行从低到高排序,再点击则从高到低排序,请用javascript实现以上功能。...
  • luckyone1111
  • luckyone1111
  • 2017年09月08日 20:03
  • 140

冒泡排序:成绩从低到高排序(JAVA)

冒泡排序: JAVA语言提供了List接口,表示元素可以重复的一个广义线性表。 具体实现类:ArrayList,是长度可变的数组。 具体代码如下: public class student ...
  • weixin_40119412
  • weixin_40119412
  • 2018年01月05日 16:03
  • 71

利用结构体输入学生信息并按分数排序后输出

#include #include struct Student { int age; float score; char name[100]; }; int main(v...
  • Dean_Deng
  • Dean_Deng
  • 2015年05月06日 20:09
  • 4628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:78.对学生成绩进行排序
举报原因:
原因补充:

(最多只允许输入30个字)