本帖最後由 鄭繼威 於 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行順便排名字- #include<iostream>
- #include<cstdlib>
- using namespace std;
- int main()
- {
- int tmp;
- int n[]={12,57,-6,-32,0,23};
-
- string tmp2;
- string name[]={"a","b","c","d","e","f"};
-
- cout<<"排序前: "<<endl;
- for(int i=0; i<6; i++)
- cout<<n[i]<<"\t"<<name[i]<<endl;
- cout<<endl;
- for(int i=0; i<5; i++)
- {
- for(int j=i+1; j<6; j++)
- {
- if(n[j]<n[i])
- {
- tmp=n[j];
- n[j]=n[i];
- n[i]=tmp;
- //換n的時候順便換name
- tmp2=name[j];
- name[j]=name[i];
- name[i]=tmp2;
-
- }
- }
- }
- cout<<"排序後: "<<endl;
- for(int i=0; i<6; i++)
- cout<<n[i]<<"\t"<<name[i]<<endl;
- cout<<endl;
- system("pause");
- return 0;
- }
複製代碼 |