程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 2_1有序的結構體數組

2_1有序的結構體數組

編輯:C++入門知識

[cpp]   /*  * 程序的版權和版本聲明部分  * Copyright (c)2013, 煙台大學計算機學院學生  * All rightsreserved.  * 文件名稱:score.cpp                             * 作    者: 紀子龍                             * 完成日期: 2013 年  3月   8日  * 版本號: v1.0    www.2cto.com    * 輸入描述:已經在程序中初始化  * 問題描述:將學生成績信息存儲在結構體數組中,對結構體排序並輸出  * 輸出:按C++降序和按學號升序排序後的學生成績單  */   #include <iostream>   using namespace std;   struct Score   {       char num[14];       int cpp;       int math;       int english;   };   ;  //要自定義的函數   void sort1(Score p[],int n);   void sort2(Score p[],int n);   void output(Score p[],int);   int main()   {       Score score[]={{"201152501104",65,69 ,68 },       {"201152501114",94 ,89 ,63 },       {"201152501138",67 ,62 ,84 },       {"201152501204",100 ,65 ,91 },       {"201152501202",59 ,80 ,55 },       {"201152501115",92 ,84 ,60 },       {"201152501201",80 ,92 ,71 },       {"201152501145",88 ,56 ,67 },       {"201152501203",62 ,62 ,95 },       {"201152501140",80 ,60 ,86 },       {"201152501205",73 ,90 ,94}};       int stuNum=sizeof(score)/sizeof(score[0]);       //將所有同學按C++降序排序後輸出       sort1(score,stuNum);       cout<<"按C++降序排序後:"<<endl;       output(score,stuNum);       //將所有同學按學號升序排序後輸出       sort2(score,stuNum);       cout<<"按學號升序排序後:"<<endl;       output(score,stuNum);       return 0;   }   void sort1(Score p[],int n)   {       int i,j;       Score t[50];       for(j=0;j<n;j++)           for(i=0;i<n-j;i++)               if(p[i].cpp>p[i+1].cpp)               {                   strcpy(t[i].num,p[i].num);                   strcpy(p[i].num,p[i+1].num);                   strcpy(p[i+1].num,t[i].num);                   t[i].cpp=p[i].cpp;                   p[i].cpp=p[i+1].cpp;                   p[i+1].cpp=t[i].cpp;                   t[i].math=p[i].math;                   p[i].math=p[i+1].math;                   p[i+1].math=t[i].math;                   t[i].english=p[i].english;                   p[i].english=p[i+1].english;                   p[i+1].english=t[i].english;               }   }   void sort2(Score p[],int n)   {       int i,j;       Score t[50];       for(j=0;j<n;j++)           for(i=0;i<n-j;i++)               if(strcmp(p[i].num,p[i+1].num)>0)               {                      strcpy(t[i].num,p[i+1].num);                   strcpy(p[i+1].num,p[i].num);                   strcpy(p[i].num,t[i].num);                   t[i].cpp=p[i+1].cpp;                   p[i+1].cpp=p[i].cpp;                   p[i].cpp=t[i].cpp;                   t[i].math=p[i+1].math;                   p[i+1].math=p[i].math;                   p[i].math=t[i].math;                   t[i].english=p[i+1].english;                   p[i+1].english=p[i].english;                   p[i].english=t[i].english;               }   }   void output(Score p[],int n)   {       int i;       for(i=0;i<n;i++)           cout<<p[i].num<<" "<<p[i].cpp<<" "<<p[i].english<<" "<<p[i].math<<endl;   }   運行結果:  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved