Board logo

標題: 排序 (四) [打印本頁]

作者: 陳曜誌    時間: 2024-8-5 22:51     標題: 排序 (四)

假設班上有五位同學, 其成績資料如下:
string name[5]={"大雄","小叮噹","宜靜","技安","阿福"};
int score[5]={60,80,100,40,75};


試利用選擇排序法, 為成績表加上排名.



本帖隱藏的內容需要回復才可以瀏覽

作者: 李昱辰    時間: 2024-8-6 21:06

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     cout<<"原始資料"<<endl;
  6.     cout<<"-------------"<<endl;
  7.     cout<<"姓名\t成績"<<endl;
  8.     cout<<"-------------"<<endl;

  9.     string name[5]={"大雄","小叮噹","宜靜","技安","阿福"};
  10.     int score[5]={60,80,100,40,75};
  11.     for(int i=0;i<5;i++)
  12.     {
  13.         cout<<name[i]<<"\t"<<score[i]<<endl;
  14.     }
  15.     cout<<"依成績排序後資料"<<endl;
  16.     cout<<"------------------------"<<endl;
  17.     cout<<"姓名\t成績\t排名"<<endl;
  18.     cout<<"------------------------"<<endl;

  19.     for(int i=0;i<4;i++)
  20.     {
  21.         for(int j=i+1;j<5;j++)
  22.         {
  23.             if(score[j]>score[i])
  24.             {
  25.                 int tmp1=score[j];
  26.                 score[j]=score[i];
  27.                 score[i]=tmp1;
  28.                 string tmp2=name[j];
  29.                 name[j]=name[i];
  30.                 name[i]=tmp2;
  31.             }
  32.         }
  33.     }
  34.     for(int i=0;i<5;i++)
  35.     {
  36.         cout<<name[i]<<"\t"<<score[i]<<"\t"<<i+1<<endl;
  37.     }
  38. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2