、在函数中进行10个学生成绩从高到低排名 sort(int a[10]);的代码怎么写:?

来源:百度知道 编辑:UC知道 时间:2024/08/22 16:42:04
1、在函数中进行10个学生成绩从高到低排名 sort(int a[10]);
2、改进第一步的函数为sort(int a[],int n),进行n个学生成绩从高到低排名;
3、改进第二步的函数为sort(int a[],int n, char style), 将n个学生成绩从高到低排名,排名方式;
4、根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。
(a:ascending 升,d:descending 降)。
总题目是这样的,请问一下应该怎么编写?

给个思路,代码还是自己练习着写才会有长进的

1.这个函数的局限性在于指定了元素数量大小是10,也就是说只能给有10个元素的数组排序

2.这个函数第一个参数没有指定元素大小,而是将元素大小作为第2个参数,这样就可以给任意元素个数的数组排序,只要将数组和元素个数传入函数

3.这个函数增加了第3个参数,那么根据第3个参数的值来进行降序排列或者升序排列,在函数体内用switch或者if就可以

至于排序的算法,比较常见和简单的譬如冒泡排序法

排序算法网上一大堆。几十个元素的排序用选择排序就好。

冒泡排序的函数:
void bubble(int data[],int length)
{
int segment;
int loop;
int temp;

for(segment=0;segment<=length-2;segment=segment+1){
for(loop=length-2;loop>=segment;loop=loop-1){
if(data[loop]>data[loop+1]){
temp=data[loop];
data[loop]=data[loop+1];
data[loop+1]=temp;
}
}
}
return;
}

回答即可得2分,回答被采纳则获得悬赏分以及奖励20分for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->getsum())<(s[y]->getsum()))
t=y;
if(t!=x)
{
b=*s[x];
*s[x]=*s[t];
*s[t]=b;
}
}
}
if(i==

从键盘输入 10个学生的成绩存储在数组中,求成绩最高者的序号和成绩 在Excel中,共有38个班的学生成绩数据,已经知道学生的年级名次,咋计算学生的班级名次?能用函数有? 文件A.DAT中应用fwrite()函数写入了10个学生的成绩信息,每个学生成绩信息结构如下: c语言:输入10个学生成绩存储在数组中,求成绩最高者的序号和成绩 10个学生,每个3门成绩,用函数求出最高分的那个学生的学号、3门成绩 在一个一维数组中放了10个学生的成绩编程求平均成绩 n个学生的学号和成绩放入二维数组在图片框中显示。把成绩进行排名在另一图片框(学号和成绩对应),谢谢! 用C++编写函数实现排序,设计排序算法对N个学生的成绩进行排序,排序方式根据函数的style参数确定 用一个一维数组存放10 个学生的成绩,写一个函数求出平均 有一个一维数组,内放10个学生成绩,编写一个函数求平均成绩