返回列表 發帖

[作業] 排序 (四)

假設班上有五位同學, 其成績資料如下:
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.     int x;
  7.     string name[5]={"大雄","小叮噹","宜靜","技安","阿福"};
  8.     int score[5]={60,80,100,40,75};
  9.     int place[5]={1,2,3,4,5};
  10.     cout<<"原始資料"<<endl;
  11.     cout<<"-------------"<<endl;
  12.     cout<<"姓名     成績"<<endl;
  13.     cout<<"-------------"<<endl;

  14.     for(int i=0; i<5; i++)
  15.     {
  16.         cout<<name[i]<<"     "<<score[i]<<endl;
  17.     }
  18.     for(int i=0; i<5; i++)
  19.     {
  20.         for(int j=0; j<5; j++)
  21.         {
  22.             if(score[i]>score[j])
  23.             {
  24.                 x=score[j];
  25.                 score[j]=score[i];
  26.                 score[i]=x;
  27.             }
  28.         }

  29.     }
  30.     for(int i=0; i<5; i++)
  31.     {
  32.         for(int j=0; j<5; j++)
  33.         {
  34.             if(score[i]>score[j])
  35.             {
  36.                 int y=j;
  37.                 name[y]=name[j];
  38.                 name[j]=name[i];
  39.                 name[i]=name[y];
  40.             }
  41.         }

  42.     }
  43.     cout<<endl<<"依成績排序後: "<<endl;
  44.     cout<<"----------------------"<<endl;
  45.     cout<<"姓名     成績     排名"<<endl;
  46.     cout<<"----------------------"<<endl;

  47.     for(int i=0; i<5; i++)
  48.     {
  49.         cout<<name[i]<<"     "<<score[i]<<"     "<<place[i]<<endl;
  50.     }

  51. }
複製代碼

TOP

  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int x;
  7.     string a[5]={"大雄","小叮噹","宜靜","技安","阿福"};
  8.     int score[5]={60,80,100,40,75};
  9.     int b[5]={1,2,3,4,5};
  10.     cout<<"原始資料       "<<endl;
  11.     cout<<"-------------"<<endl;
  12.     cout<<"姓名     成績"<<endl;
  13.     cout<<"-------------"<<endl;


  14.     for(int i=0; i<5; i++)
  15.     {
  16.         cout<<a[i]<<"     "<<score[i]<<endl;
  17.     }
  18.     for(int i=0; i<5; i++)
  19.     {
  20.         for(int j=0; j<5; j++)
  21.         {
  22.             if(score[i]>score[j])
  23.             {

  24.                 x=score[j];
  25.                 score[j]=score[i];
  26.                 score[i]=x;
  27.             }
  28.         }

  29.     }
  30.     for(int i=0; i<5; i++)
  31.     {
  32.         for(int j=0; j<5; j++)
  33.         {
  34.             if(score[i]>score[j])
  35.             {


  36.                 int y=j;
  37.                 a[y]=a[j];
  38.                 a[j]=a[i];

  39.                 a[i]=a[y];

  40.             }
  41.         }

  42.     }
  43.     cout<<endl<<"依成績排序後: "<<endl;

  44.     cout<<"----------------------"<<endl;

  45.     cout<<"姓名     成績     排名"<<endl;

  46.     cout<<"----------------------"<<endl;

  47.     for(int i=0; i<5; i++)
  48.     {
  49.         cout<<a[i]<<"     "<<score[i]<<"     "<<b[i]<<endl;
  50.     }

  51. }
複製代碼

TOP

  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     string n[]={"大雄","小叮噹","宜靜","技安","阿福"};
  7.     int s[]={60,80,100,40,75};
  8.     int t[]={1,2,3,4,5};
  9.     cout<<"原始資料"<<endl;
  10.     cout<<"--------------"<<endl;
  11.     cout<<"姓名\t成績"<<endl;
  12.     cout<<"--------------"<<endl;
  13.     for(int i=0; i<=4; i++)
  14.     {
  15.         cout<<n[i]<<"\t"<<s[i]<<endl;
  16.     }
  17.     cout<<endl<<"依成績排序後"<<endl;
  18.     cout<<"--------------"<<endl;
  19.     for(int i=0; i<=4; i++)
  20.     {
  21.         for(int j=0; j<=4; j++)
  22.         {
  23.             if(s[i]>s[j])
  24.             {
  25.                 int y;
  26.                 string z;
  27.                 y=s[i];
  28.                 s[i]=s[j];
  29.                 s[j]=y;
  30.                 z=n[i];
  31.                 n[i]=n[j];
  32.                 n[j]=z;
  33.             }
  34.         }
  35.     }
  36.     cout<<endl<<"依成績排序後: "<<endl;
  37.     cout<<"----------------------"<<endl;
  38.     cout<<"姓名     成績     排名"<<endl;
  39.     cout<<"----------------------"<<endl;
  40.     for(int i=0; i<5; i++)
  41.        cout<<n[i]<<"\t"<<s[i]<<"\t"<<t[i]<<endl;
  42. }
複製代碼

TOP

本帖最後由 洪榮辰 於 2024-8-17 13:32 編輯
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     string n[]={"大雄","小叮噹","宜靜","技安","阿福"};
  7.     int s[]={60,80,100,40,75};
  8.     int x[]={1,2,3,4,5};
  9.     cout<<"原始資料"<<endl;
  10.     cout<<"-------------"<<endl;
  11.     cout<<"姓名\t成績"<<endl;
  12.     cout<<"-------------"<<endl;
  13.     for(int i=0; i<=4; i++)
  14.         {
  15.         cout<<n[i]<<"\t"<<s[i]<<endl;
  16.         }
  17.         for(int i=0; i<=4; i++)
  18.         {
  19.            for(int j=0; j<=4; j++)
  20.            {
  21.             if(s[i]>s[j])
  22.                 {
  23.                 int y;
  24.                 string z;
  25.                 y=s[i];
  26.                 s[i]=s[j];
  27.                 s[j]=y;
  28.                 z=n[i];
  29.                 n[i]=n[j];
  30.                 n[j]=z;
  31.                 }
  32.             }
  33.         }
  34.     cout<<endl<<"依成績排序後資料"<<endl;
  35.     cout<<"---------------------"<<endl;
  36.     cout<<"姓名    成績    排名"<<endl;
  37.     cout<<"---------------------"<<endl;
  38.     for(int i=0; i<5; i++)
  39.     cout<<n[i]<<"\t"<<s[i]<<"\t"<<x[i]<<endl;
  40.     system("pause");
  41.     return 0;
  42. }
複製代碼

TOP

返回列表