返回列表 發帖

[作業] 排序 (四)

本帖最後由 鄭繼威 於 2022-4-30 12:13 編輯

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



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



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


提示:
看看排序 (一)
int n[]={12,57,-6,-32,0,23}
是我們一開始的陣列
做好排序後我們再宣告第二個陣列(名字)
string name[]={"a","b","c","d","e","f"};
22
接下來排序(由大到小)交換的時候順便換名字
22~24行是原本的排序+26~28行順便排名字
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int tmp;
  7.     int n[]={12,57,-6,-32,0,23};
  8.    
  9.     string tmp2;
  10.     string name[]={"a","b","c","d","e","f"};
  11.    
  12.     cout<<"排序前: "<<endl;
  13.     for(int i=0; i<6; i++)
  14.         cout<<n[i]<<"\t"<<name[i]<<endl;
  15.     cout<<endl;
  16.     for(int i=0; i<5; i++)
  17.     {
  18.         for(int j=i+1; j<6; j++)
  19.         {
  20.             if(n[j]<n[i])
  21.             {
  22.                 tmp=n[j];
  23.                 n[j]=n[i];
  24.                 n[i]=tmp;
  25.                 //換n的時候順便換name
  26.                 tmp2=name[j];
  27.                 name[j]=name[i];
  28.                 name[i]=tmp2;
  29.                
  30.             }
  31.         }   
  32.     }
  33.     cout<<"排序後: "<<endl;
  34.     for(int i=0; i<6; i++)
  35.         cout<<n[i]<<"\t"<<name[i]<<endl;
  36.     cout<<endl;
  37.     system("pause");
  38.     return 0;
  39. }
複製代碼

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

返回列表