c語言學生成績排序函數(shù) c語言學生成績排序編程

C語言 怎么對成績排序

#include stdlib.h

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站設計、成都做網(wǎng)站、紫金網(wǎng)絡推廣、小程序設計、紫金網(wǎng)絡營銷、紫金企業(yè)策劃、紫金品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供紫金建站搭建服務,24小時服務熱線:028-86922220,官方網(wǎng)址:muchs.cn

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

{

student *x=(student*)a;

student *y=(student*)b;

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

return 1;

return 0;

}

//上面函數(shù)放在struct student下面,需要該結構

//排序方式可以靈活調(diào)整,上面我只是用第一門分數(shù)進行比較

//你也可以用其它分數(shù)進行比較,多寫2個函數(shù)就行,如int cmp2(const void*a,const void*b)等等。

//排序函數(shù)

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

//stu是數(shù)組名,STU_NUM是數(shù)組元素個數(shù),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個學生的成績,由高到低排序輸出成績

你好,我們這里需要用到數(shù)組鑲套使用for函數(shù)以及冒泡算法,具體的代碼如下。

#include iostream

using namespace std;

int main()

{

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

cout "輸入10個數(shù):";

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個班統(tǒng)一選擇排序

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個班統(tǒng)一冒泡排序

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個班的成績拷貝到臨時數(shù)組x中

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

for(i=0;it;i++){//對數(shù)組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++);//把數(shù)組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語言學生成績排序函數(shù) c語言學生成績排序編程
網(wǎng)站鏈接:http://muchs.cn/article26/ddcgijg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站設計企業(yè)網(wǎng)站制作、服務器托管域名注冊、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)