返回列表 發帖

[作業] 排序 (四)

本帖最後由 鄭繼威 於 2023-4-15 14:18 編輯

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


試利用選擇排序法, 為成績表加上排名.
由大到小,換成績的時候順便換名字

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     string tmp1;
  7.     int tmp2;
  8.     string name[5]={"大雄","小叮噹","宜靜","技安","阿福"};
  9.     int score[5]={60,80,100,40,75};
  10.     cout<<"原始資料"<<endl;
  11.     cout<<"-------------"<<endl;
  12.     cout<<"姓名\t成績"<<endl;
  13.     cout<<"-------------"<<endl;
複製代碼
  1.     for(int i=0; i<=4; i++)
  2.         cout<<name[i]<<"\t"<<score[i]<<endl;
  3.     cout<<endl;
  4.     //開始排序
  5.     for(int i=0; i<=3; i++)
  6.     {
  7.          for(int j=i+1; j<=4; j++)
  8.          {
  9.             //倆倆(i,j)比較
  10.             //右邊大於左邊就交換->換到最後最左邊會最大
  11.              if(score[j]>score[i])
  12.              {
  13.                   tmp1=name[j];
  14.                   name[j]=name[i];
  15.                   name[i]=tmp1;
  16.                   tmp2=score[j];
  17.                   score[j]=score[i];
  18.                   score[i]=tmp2;
  19.              }
  20.          }
  21.     }
複製代碼
  1.     cout<<"依成績排序後資料"<<endl;
  2.     cout<<"---------------------"<<endl;
  3.     cout<<"姓名\t成績\t排名"<<endl;
  4.     cout<<"---------------------"<<endl;
  5.     for(int i=0; i<=4; i++)
  6.         cout<<name[i]<<"\t"<<score[i]<<"\t"<<i+1<<endl;
  7.     cout<<endl;
  8.     system("pause");
  9.     return 0;
  10. }
複製代碼

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

返回列表