c语言学生成绩排序函数 c语言学生成绩排序编程

C语言 怎么对成绩排序

#include stdlib.h

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都做网站、紫金网络推广、小程序设计、紫金网络营销、紫金企业策划、紫金品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供紫金建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

int cmp(const void *a, const void *b)

{

student *x=(student*)a;

student *y=(student*)b;

if(x-score[0] y-score[0])//升序排序(从小到大) 如果改成,就是降序排序(从大到小)

return 1;

return 0;

}

//上面函数放在struct student下面,需要该结构

//排序方式可以灵活调整,上面我只是用第一门分数进行比较

//你也可以用其它分数进行比较,多写2个函数就行,如int cmp2(const void*a,const void*b)等等。

//排序函数

qsort(stu,STU_NUM,sizeof(stu[0]),cmp);

//stu是数组名,STU_NUM是数组元素个数,cmp就排序方式(可以替换为cmp2等等)

C语言怎么进行成绩的排序?

#includestdio.h

int main()

{

int a[10],i,j,t,k;

printf("请以次输入10个学生的成绩:");

for(i=0;i10;i++)scanf("%d",a[i]);

for(i=0;i9;i++)

{

k=i;

for(j=i;j10;j++)

if(a[j]a[k])k=j;

if(i!=k)

{

t=a[i];

a[i]=a[k];

a[k]=t;

}

}

printf("由高到低排序输出成绩:\n");

for(i=0;i10;i++)

printf("%d\n",a[i]);

return 0;

}

用C语言编程:从键盘输入10个学生的成绩,由高到低排序输出成绩

你好,我们这里需要用到数组镶套使用for函数以及冒泡算法,具体的代码如下。

#include iostream

using namespace std;

int main()

{

int s [10], i, j, t;

cout "输入10个数:";

for (i = 0; i 10; i++)

{

cout "请输入第" i+1 "名学生的成绩;" endl;

cin s[i];

}

for (i = 0; i10; i++)

{

for (j = 0; j9 - i; j++)

if (s[j]s[j + 1])

{

t = s[j + 1];

s[j + 1] = s[j];

s[j] = t;

}

}

cout "成绩由高到低为;";

for (i = 0; i10; i++)

cout s[i]"\t" ;

}

以下为效果图

c语言成绩排序,做完微信红包

#include "stdio.h"

#include stdlib.h

#include string.h

#include "time.h"

struct abcd{

char ID[11],name[17];

int s1,s2,s3,s4,s5;

double ave;

struct abcd *next;

};

void inp(struct abcd (*p)[45]){

int i,j,k,t;

char id[11]="0000000000";

for(i=0;i4;i++){

for(j=0;j45;j++){

if(++id[9]'9')

for(k=9;k0;k--)

id[k]-=10,id[k-1]++;

strcpy(p[i][j].ID,id);

for(t=0,k=rand()%16;k;k--)

p[i][j].name[t++]=rand()%26+'A';

p[i][j].name[t]='\0';

p[i][j].s1=rand()%101;

p[i][j].s2=rand()%101;

p[i][j].s3=rand()%101;

p[i][j].s4=rand()%101;

p[i][j].s5=rand()%101;

}

}

}

void average(struct abcd (*p)[45]){

int i,j;

for(i=0;i4;i++)

for(j=0;j45;p[i][j].ave=(p[i][j++].s1+p[i][j].s2+p[i][j].s3+p[i][j].s4+p[i][j].s5)/5.0);

}

void selsort(struct abcd (*p)[45]){//4个班统一选择排序

int i,j,k,t;

struct abcd q;

for(t=0;t4;t++)

for(i=0;i45;i++){

for(k=i,j=k+1;j45;j++)

if(p[t][k].avep[t][j].ave)

k=j;

if(k!=i)

q=p[t][k],p[t][k]=p[t][i],p[t][i]=q;

}

}

void bubsort(struct abcd (*p)[45]){//4个班统一冒泡排序

int i,j,t;

struct abcd q;

for(t=0;t4;t++)

for(i=0;i45;i++)

for(j=0;j44;j++)

if(p[t][j].avep[t][j+1].ave)

q=p[t][j],p[t][j]=p[t][j+1],p[t][j+1]=q;

}

void getlink(struct abcd (*p)[45],struct abcd *x){//弄成链表

int i,j,k,t;

struct abcd q;

for(t=i=0;i4;i++)//把4个班的成绩拷贝到临时数组x中

for(j=0;j45;x[t++]=p[i][j++]);

for(i=0;it;i++){//对数组x降序排序

for(k=i,j=k+1;jt;j++)

if(x[k].avex[j].ave)

k=j;

if(k!=i)

q=x[k],x[k]=x[i],x[i]=q;

}

for(i=1;it;x[i-1].next=x+i++);//把数组p搞成单链表

x[i-1].next=NULL;

}

int main(int argc,char *argv[]){

struct abcd c[4][45],t[4*45],*p;

int k;

srand((unsigned)time(NULL));

inp(c);

average(c);

bubsort(c);

selsort(c);//这是脱了裤子FP,无论用什么方法排序结果是一样的,不懂为何这么出题

getlink(c,t);

printf("----------Look at...----------\n");

for(k=0,p=t;p;p=p-next)//将链表中的值输出

printf(++k%15 ? "%5.1f" : "%5.1f\n",p-ave);

if(k%10)

printf("\n");

return 0;

}

运行样例:

这种题打字太多……


分享标题:c语言学生成绩排序函数 c语言学生成绩排序编程
分享地址:http://hbruida.cn/article/ddcgijg.html