c語言成績排序主要函數 成績排序c語言數據結構

學生成績排序 c語言設計

#includeiostream

創新互聯建站長期為上千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為前郭企業提供專業的網站設計、成都網站設計,前郭網站改版等技術服務。擁有10余年豐富建站經驗和眾多成功案例,為您定制開發。

#includestring

#includeiomanip

#includefstream

using namespace std;

int n; //n個學校

int m; //m個男子項目

int w; //w個女子項目

struct pro //表示項目的結構體

{

string name; //項目名稱

int snum[6]; //前5名學校的編號

}p[21];

struct school //表示學校的結構體

{

int num;

string name; //學校名稱

int score; //學校總分

int male; //男子總分

int female; //女子總分

}sch[21];

int integral[5]={7,5,3,2,1};//前五名得分

void input()

{

int i,j,y,x;

printf("輸入學校數目:");

y=0;

while(1)

{

scanf("%d",n);

if(n=1n=20)y=1;

if(y)break;

else printf("輸入數據有誤,請重新輸入:");

}

for(i=1;i=n;i++)

{

printf("輸入第%d個學校的名稱:",i);

cinsch[i].name;

sch[i].score=0;

sch[i].female=0;

sch[i].male=0;

sch[i].num=i;

}

printf("輸入男子項目數和女子項目數:");

y=0;

while(1)

{

scanf("%d%d",m,w);

if(m=20m=1w=20w=1)y=1;

if(y)break;

else printf("輸入數據有誤,請重新輸入:");

}

for(i=1;i=m+w;i++)

{

printf("輸入第%d個項目的名稱:\n",i);

cinp[i].name;

printf("輸入第%d個項目的前5名的學校編號:\n",i);

for(j=1;j=5;j++)

{

y=0;

while(1)

{

scanf("%d",x);

if(x=1x=20)y=1;

if(y)break;

else printf("輸入數據有誤,請重新輸入:");

}

p[i].snum[j]=x;

sch[x].score+=integral[j-1];

if(i=m)sch[x].male+=integral[j-1];

else sch[x].female+=integral[j-1];

}

}

}

void print(int i)

{

coutsch[i].numsetw(10)sch[i].namesetw(8)sch[i].scoresetw(9)

sch[i].malesetw(10)sch[i].femaleendl;

}

void bianhao() //按編號排序

{

int i,j;

school t;

for(i=1;in;i++)

{

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

if(sch[i].numsch[j].num)

{t=sch[i];sch[i]=sch[j];sch[j]=t;}

}

printf("\n按編號排列:\n");

printf("編號 學校名稱 總分 男子總分 女子總分\n");

for(i=1;i=n;i++)

print(i);

}

void zongfen() //按學??偡峙判?/p>

{

int i,j;

school t;

for(i=1;in;i++)

{

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

if(sch[i].scoresch[j].score)

{t=sch[i];sch[i]=sch[j];sch[j]=t;}

}

printf("\n按學校總分排列:\n");

printf("編號 學校名稱 總分 男子總分 女子總分\n");

for(i=1;i=n;i++)

print(i);

ofstream fout;

fout.open("運動會分數統計.txt");

fout"編號 學校名稱 總分 男子總分 女子總分"endl;

for(i=1;i=n;i++)

{foutsch[i].numsetw(13)sch[i].namesetw(8)sch[i].scoresetw(9)

sch[i].malesetw(10)sch[i].femaleendl; }

fout.close();

}

void malezf() //按學校男總分排序

{

int i,j;

school t;

for(i=1;in;i++)

{

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

if(sch[i].malesch[j].male)

{t=sch[i];sch[i]=sch[j];sch[j]=t;}

}

printf("\n按學校男子總分排列:\n");

printf("編號 學校名稱 總分 男子總分 女子總分\n");

for(i=1;i=n;i++)

print(i);

}

void femalezf() //按學校女總分排序

{

int i,j;

school t;

for(i=1;in;i++)

{

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

if(sch[i].femalesch[j].female)

{t=sch[i];sch[i]=sch[j];sch[j]=t;}

}

printf("\n按學校女子總分排列:\n");

printf("編號 學校名稱 總分 男子總分 女子總分\n");

for(i=1;i=n;i++)

print(i);

coutendl;

}

void cxsch() //查詢學校信息

{

int i,y,s;

printf("輸入需要查詢的學校編號:");

y=0;

while(1)

{

scanf("%d",s);

if(s=1s=n)y=1;

if(y)break;

else printf("輸入數據有誤,請重新輸入:");

}

printf("該學校相關信息:\n");

printf("編號 學校名稱 總分 男子總分 女子總分\n");

for(i=1;i=n;i++)

{

if(sch[i].num==s)

{

print(i);

break;

}

}

coutendl;

}

void cxxm() //查詢項目信息

{

int i,y,s;

printf("輸入需要查詢的項目編號:");

y=0;

while(1)

{

scanf("%d",s);

if(s=1s=n)y=1;

if(y)break;

else printf("輸入數據有誤,請重新輸入:");

}

coutp[s].name"前5名學校編號及名稱為:"endl;

printf("名次 編號 學校名稱\n");

for(i=1;i=5;i++)

cout" "i" "p[s].snum[i]setw(12)sch[ p[s].snum[i] ].nameendl;

coutendl;

}

void solve() //菜單函數

{

int z;

while(1)

{

printf("\n選擇您需要的操作(選擇序號):\n");

printf("1.按學校編號排序輸出\n");

printf("2.按學??偡峙判蜉敵鯸n");

printf("3.按學校男總分排序輸出\n");

printf("4.按學校女總分排序輸出\n");

printf("5.查詢某個學校成績\n");

printf("6.查詢某個項目成績\n");

printf("7.結束\n\n");

scanf("%d",z);

if(z==1)bianhao();

if(z==2)zongfen();

if(z==3)malezf();

if(z==4)femalezf();

if(z==5)cxsch();

if(z==6)cxxm();

if(z==7)break;

}

}

int main() //主函數

{

input();

solve();

return 0;

}

編寫c語言程序用三個函數求10個同學的平均分及成績排序

1、寫一個主函數,10個成績放在一個數組里。

2、然后寫一個求平均值的函數,返回平均值,用循環語句求和在求平均值,小學生應該都會求平均值。

3、再寫一個排序算法,先模仿一個冒泡排序算法,最簡單的排序算法。

這樣不就三個函數了嗎?,這個題主要讓你初步掌握,數組,循環語句的使用,函數的調用,函數參數的傳遞,函數值的返回等。學習C就自己多練,多想這樣會進步,代碼就不寫了吧,對你不好。

C語言 怎么對成績排序

#include stdlib.h

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語言成績排序主要函數 成績排序c語言數據結構
分享路徑:http://m.kartarina.com/article36/dodsjsg.html

成都網站建設公司_創新互聯,為您提供定制網站企業建站App設計、自適應網站、虛擬主機、域名注冊

廣告

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

成都seo排名網站優化
主站蜘蛛池模板: 国产精品无码一区二区三区毛片| 国产成人无码网站| 东京热av人妻无码专区| 国产成人无码av片在线观看不卡| 国产精品成人无码久久久久久| 亚洲AV无码专区在线播放中文 | 日韩AV无码一区二区三区不卡毛片| 中文字幕无码一区二区免费| 亚洲中文字幕无码亚洲成A人片| 狠狠躁狠狠爱免费视频无码 | 无码人妻精品一区二区三区久久久 | 国产高清无码毛片| 无码专区中文字幕无码| 亚洲精品无码激情AV| 免费无码黄十八禁网站在线观看| 精品无码国产污污污免费网站国产| 无码精品A∨在线观看免费| 东京热加勒比无码少妇| 亚洲AV永久无码精品一福利| 亚洲日韩乱码中文无码蜜桃臀| 国产午夜无码专区喷水| 国产成人无码aa精品一区| 亚洲中文字幕无码av在线| 亚洲av无码国产精品色午夜字幕 | 无码人妻久久一区二区三区免费| 色综合色国产热无码一| 亚洲中文无码线在线观看| 无码国内精品人妻少妇蜜桃视频| 无码日韩精品一区二区人妻| 免费无码成人AV片在线在线播放| 亚洲色无码专区一区| 久久午夜无码鲁丝片秋霞 | 久久久久亚洲av无码专区导航| 国产精品va无码一区二区| 少妇无码AV无码一区| 国产免费无码AV片在线观看不卡| 中文字幕无码精品三级在线电影| 国产日产欧洲无码视频无遮挡| 在线精品自拍无码| 国产AV无码专区亚洲AV漫画 | 久久久久亚洲av无码专区蜜芽|