返回列表 發帖

[作業] 排序 (四)

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


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



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

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

TOP

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

TOP

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

TOP

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

TOP

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

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     string name[5]={"大雄","小叮噹","宜靜","技安","阿福"};
  8.     int score[5]={60,80,100,40,75};
  9.     cout<<"原始資料"<<endl;
  10.     cout<<"---------------"<<endl;
  11.     cout<<"姓名\t成績"<<endl;
  12.     cout<<"---------------"<<endl;
  13.     for(int i=0;i<5;i++)
  14.         cout<<name[i]<<"\t"<<score[i]<<endl;
  15.     cout<<endl<<"選擇排序後"<<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[i]<score[j])
  24.             {
  25.                 int tmp1;
  26.                 tmp1=score[i];
  27.                 score[i]=score[j];
  28.                 score[j]=tmp1;
  29.                 string tmp2;
  30.                 tmp2=name[i];
  31.                 name[i]=name[j];
  32.                 name[j]=tmp2;
  33.                                     
  34.             }     
  35.         }      
  36.     }
  37.     for(int i=0;i<5;i++)
  38.     cout<<name[i]<<"\t"<<score[i]<<"\t"<<i+1<<endl;
  39.     system("pause");
  40.     return 0;
  41. }
複製代碼

TOP

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

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     string name[5]={"大雄","小叮噹","宜靜","技安","阿福"};
  8.     int grade[5]={60,80,100,40,75};
  9.    
  10.    
  11.     cout<<"Original data: "<<endl;
  12.     cout<<"-------------"<<endl<<"Name\tGrade"<<endl<<"-------------"<<endl;
  13.     for(int i=0; i<5; i++)
  14.         cout<<name[i]<<"\t"<<grade[i]<<endl;
  15.     cout<<endl;
  16.    
  17.    
  18.     for(int i=0; i<4; i++)
  19.     {
  20.         for(int j=i+1; j<5; j++)
  21.             if(grade[i]<grade[j])
  22.             {
  23.                 int tmp;
  24.                 tmp = grade[i];
  25.                 grade[i] = grade[j];
  26.                 grade[j] = tmp;
  27.                
  28.                 string change;
  29.                 change = name[i];
  30.                 name[i] = name[j];
  31.                 name[j] = change;
  32.                
  33.                
  34.             }      
  35.     }   
  36.    
  37.     cout<<"Orginized by grade(highest to lowest): "<<endl;
  38.     cout<<"------------------------"<<endl<<"Name\tGrade\tLeader board"<<endl<<"------------------------"<<endl;
  39.     for(int i=0; i<5; i++)
  40.         {
  41.         cout<<name[i]<<"\t"<<grade[i]<<"\t"<<i+1;
  42.         cout<<endl;
  43.         }
  44.    
  45.     system("pause");
  46.     return 0;
  47. }
複製代碼

TOP

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

TOP

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

TOP

  1. include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     string name[5]={"大雄","小叮噹","宜靜","技安","阿福"};
  8.     int grade[5]={60,80,100,40,75};
  9.    
  10.    
  11.     cout<<"Original data: "<<endl;
  12.     cout<<"-------------"<<endl<<"Name\tGrade"<<endl<<"-------------"<<endl;
  13.     for(int i=0; i<5; i++)
  14.         cout<<name[i]<<"\t"<<grade[i]<<endl;
  15.     cout<<endl;
  16.    
  17.    
  18.     for(int i=0; i<4; i++)
  19.     {
  20.         for(int j=i+1; j<5; j++)
  21.             if(grade[i]<grade[j])
  22.             {
  23.                 int tmp;
  24.                 tmp = grade[i];
  25.                 grade[i] = grade[j];
  26.                 grade[j] = tmp;
  27.                
  28.                 string change;
  29.                 change = name[i];
  30.                 name[i] = name[j];
  31.                 name[j] = change;
  32.                
  33.                
  34.             }      
  35.     }   
  36.    
  37.     cout<<"Orginized by grade(highest to lowest): "<<endl;
  38.     cout<<"------------------------"<<endl<<"Name\tGrade\tLeader board"<<endl<<"------------------------"<<endl;
  39.     for(int i=0; i<5; i++)
  40.         {
  41.         cout<<name[i]<<"\t"<<grade[i]<<"\t"<<i+1;
  42.         cout<<endl;
  43.         }
  44.    
  45.     system("pause");
  46.     return 0;
  47. }
複製代碼

TOP

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

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     string name[5]={"大雄","小叮噹","宜靜","技安","阿福"};
  8.     int grade[5]={60,80,100,40,75};
  9.    
  10.    
  11.     cout<<"Original data: "<<endl;
  12.     cout<<"-------------"<<endl<<"Name\tGrade"<<endl<<"-------------"<<endl;
  13.     for(int i=0; i<5; i++)
  14.         cout<<name[i]<<"\t"<<grade[i]<<endl;
  15.     cout<<endl;
  16.    
  17.    
  18.     for(int i=0; i<4; i++)
  19.     {
  20.         for(int j=i+1; j<5; j++)
  21.             if(grade[i]<grade[j])
  22.             {
  23.                 int tmp;
  24.                 tmp = grade[i];
  25.                 grade[i] = grade[j];
  26.                 grade[j] = tmp;
  27.                
  28.                 string change;
  29.                 change = name[i];
  30.                 name[i] = name[j];
  31.                 name[j] = change;
  32.                
  33.                
  34.             }      
  35.     }   
  36.    
  37.     cout<<"Orginized by grade(highest to lowest): "<<endl;
  38.     cout<<"------------------------"<<endl<<"Name\tGrade\tLeader board"<<endl<<"------------------------"<<endl;
  39.     for(int i=0; i<5; i++)
  40.         {
  41.         cout<<name[i]<<"\t"<<grade[i]<<"\t"<<i+1;
  42.         cout<<endl;
  43.         }
  44.    
  45.     system("pause");
  46.     return 0;
  47. }
複製代碼

TOP

返回列表