、在函数中进行10个学生成绩从高到低排名 sort(int a[10]);的代码怎么写:?
来源:百度知道 编辑:UC知道 时间:2024/08/22 16:42:04
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==