C语言-成绩排名(结构)
生活随笔
收集整理的這篇文章主要介紹了
C语言-成绩排名(结构)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目詳情
定義結構體struct stu,編寫成績排名函數:void sort(struct stu *ps,int n),對結構體數組按成績排名。程序功能為讀入整數N(N<100),再讀入N個學生的學號(整型)和成績(實數)。按樣例輸出排名。
文章目錄?
- 一、輸入樣例
- 二、輸出樣例
- 三、代碼展示
- 四、難點記錄
一、輸入樣例
首先輸入n(n<100),其次輸入n個學生的學號(整型)與成績(實數)。
5 101 99 102 100 103 50 104 80 105 99二、輸出樣例
第一列輸出名字(注意并列情況),第二列是學號,第三列是成績(保留兩位小數)。
1 102 100.00 2 101 99.00 2 105 99.00 4 104 80.00 5 103 50.00三、代碼展示
#include<stdio.h> struct student{int num;double score; }; //定義結構體 int main() {int i,n,index,j,z; //定義變量scanf("%d",&n); //輸入需要記錄的學生人數struct student stu[n],max; //定義結構體變量for(i=0;i<n;i++){scanf("%d %lf",&stu[i].num,&stu[i].score);}//輸入n個學生的學號與成績for(i=0;i<n-1;i++){index=i;for(j=i+1;j<n;j++){if(stu[index].score<stu[j].score){index=j;}}max=stu[index];stu[index]=stu[i];stu[i]=max;}//對n個學生的成績進行排名(由大到小)for(i=0,z=0;i<n;i++){if(stu[i].score==stu[i-1].score)printf("%d %d %.2lf",z,stu[i].num,stu[i].score);else{printf("%d %d %.2lf",i+1,stu[i].num,stu[i].score);z=i+1;}//輸出n個學生的排名情況if(i<n-1)printf("\n");} }四、難點記錄
本題難點在于當有相同的成績時,要進行排名并列;
總結
以上是生活随笔為你收集整理的C语言-成绩排名(结构)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TRACE宏
- 下一篇: 线上服务CPU100%问题快速定位实战(