日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

结构体对成绩进行排名

發(fā)布時(shí)間:2024/1/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结构体对成绩进行排名 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

期末考試結(jié)束后要對(duì)同學(xué)們的考試成績(jī)進(jìn)行排序,張老師已經(jīng)計(jì)算好了每一位同學(xué)的總成績(jī)。請(qǐng)編寫程序,輸入每位同學(xué)的總成績(jī)并輸出一個(gè)按成績(jī)高低排列的名次表。

該問(wèn)題中,在成績(jī)排序的同時(shí),需要相應(yīng)的學(xué)號(hào)和姓名一起隨之變化。因此,我們可以使用結(jié)構(gòu)體,學(xué)號(hào)、姓名、成績(jī)以及名次作為結(jié)構(gòu)體成員。通過(guò)對(duì)結(jié)構(gòu)體對(duì)象成員(總成績(jī))的大小判斷,實(shí)現(xiàn)把結(jié)構(gòu)體對(duì)象作為一個(gè)整體進(jìn)行排序操作。

#include <stdio.h> #include <stdlib.h> #include <string.h>typedef struct student //聲明結(jié)構(gòu)體 student { char id[5]; //學(xué)生學(xué)號(hào)(四位)char name[40]; //學(xué)生姓名float score; //期末總成績(jī)int num; //名次 }student; int main(int argc, char *argv[]) {student stu[100], temp; //定義結(jié)構(gòu)體對(duì)象數(shù)組 stu 和臨時(shí)對(duì)象 tempint i, j, n;printf("輸入學(xué)生人數(shù)(1~100):");scanf("%d", &n);printf("-----------------------\n");for(i = 0; i < n; i++) { //輸入學(xué)生成績(jī)printf("學(xué)號(hào)輸入9999則停止輸入!\n");printf("學(xué)號(hào)(9999):"); scanf("%s", stu[i].id);if(strcmp(stu[i].id, "-1") == 0) {n = i;break;}printf("姓名:"); scanf("%s", stu[i].name);printf("總成績(jī):"); scanf("%f", &stu[i].score);}for(i = 0; i < n; i++) { //按成績(jī)排序(冒泡法)for(j = i+1; j < n; j++) {if(stu[i].score < stu[j].score) {temp = stu[i];stu[i] = stu[j];stu[j] = temp;} //結(jié)構(gòu)體變量整體交換}stu[i].num = i+1;}printf("----------------------------------\n");printf(" 學(xué)號(hào) 姓名 成績(jī) 名次\n");for(i = 0;i < n; i++) { //輸出名次printf("%6s",stu[i].id);printf("%10s",stu[i].name);printf("%12.2f",stu[i].score);printf("%6d\n",stu[i].num);} return 0; }

運(yùn)行結(jié)果:

?

總結(jié)

以上是生活随笔為你收集整理的结构体对成绩进行排名的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。