Board logo

標題: [隨堂測驗] 排序 (二) [打印本頁]

作者: 方浩葦    時間: 2024-8-3 03:33     標題: [隨堂測驗] 排序 (二)

產生10個範圍介於1~20之不重複隨機亂數, 並利用選擇排序法將它們由小而大排列出來.



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

作者: 林少謙    時間: 2024-8-3 16:12

  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     int x;
  8.     srand(time(NULL));
  9.     int a[10];
  10.     for(int i=0; i<=9; i++)
  11.     {
  12.         re:
  13.         a[i]=rand()%38+1;
  14.         for(int j=0; j<i; j++)
  15.         {
  16.             if(a[i]==a[j])
  17.             {
  18.                 goto re;
  19.             }
  20.         }
  21.     }
  22.     cout<<"排序前: ";
  23.     for(int i=0; i<=9; i++)
  24.     {
  25.         cout<<a[i]<<" ";
  26.     }

  27.     for(int i=0; i<=9; i++)
  28.     {
  29.         for(int j=0; j<=9; j++)
  30.         {
  31.             if(a[i]>a[j])
  32.             {
  33.                 x=a[j];
  34.                 a[j]=a[i];
  35.                 a[i]=x;
  36.             }
  37.         }

  38.     }
  39.     cout<<endl<<"排序後: ";
  40.     for(int i=0; i<=9; i++)
  41.     {
  42.         cout<<a[i]<<" ";
  43.     }

  44. }
複製代碼

作者: 李唯銘    時間: 2024-8-10 15:05

  1. #include<cstdlib>
  2. #include<iostream>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int n[10], x;
  9.     for(int j=0; j<10; j++)
  10.     {
  11.         n[j]=rand()%20+1;
  12.         for(int k=0; k<j; k++)
  13.         {
  14.             if(n[j]==n[k])
  15.             {
  16.                j--;
  17.                break;
  18.             }
  19.         }
  20.     }
  21.     cout<<"排序前"<<endl;
  22.     for(int j=0; j<10; j++)
  23.     {
  24.         cout<<n[j]<<" ";
  25.     }
  26.     cout<<endl<<endl;
  27.     for(int i=0; i<10; i++)
  28.     {
  29.         for(int j=0; j<10; j++)
  30.         {
  31.             if(n[i]>n[j])
  32.             {
  33.                 x=n[j];
  34.                 n[j]=n[i];
  35.                 n[i]=x;
  36.             }
  37.         }

  38.     }
  39.     cout<<endl<<"排序後: "<<endl;
  40.     for(int i=0; i<10; i++)
  41.     {
  42.         cout<<n[i]<<" ";
  43.     }


  44. }
複製代碼

作者: 劉奕劭    時間: 2024-8-10 16:12

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include <ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     int t;
  8.     srand(time(NULL));
  9.     int a[10];
  10.     for(int k=0;k<=9;k++){
  11.         re:
  12.         a[k]=rand()%21;
  13.          for(int j=0; j<k; j++)
  14.         {
  15.             if(a[k]==a[j])
  16.             {
  17.                 goto re;
  18.             }
  19.         }
  20.     }



  21.     cout<<"排序前: ";
  22.     for(int i=0; i<=5; i++)
  23.     {
  24.         cout<<a[i]<<" ";
  25.     }
  26.     for(int i=0;i<=5;i++){
  27.         for(int j=i+1;j<=5;j++){
  28.             if(a[i]>a[j])
  29.             {
  30.                 t=a[j];
  31.                 a[j]=a[i];
  32.                 a[i]=t;
  33.             }

  34.         }


  35.     }

  36.     cout<<endl<<"排序後: ";
  37.     for(int i=0; i<=5; i++)
  38.     {
  39.         cout<<a[i]<<" ";
  40.     }

  41.     system("pause");

  42.     return 0;

  43. }
複製代碼

作者: 陳妍蓁    時間: 2024-8-10 16:24

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     int s=0;
  8.     srand(time(NULL));
  9.     int n[10];
  10.     for(int i=0;i<10;i++){
  11.         n[i]=rand()%20+1;
  12.          for(int k=0; k<i; k++)
  13.         {
  14.             if(n[i]==n[k])
  15.             {
  16.                i--;
  17.                break;
  18.             }
  19.         }
  20.     }

  21.     for(int j=0;j<9;j++){
  22.         for(int k=j+1;k<=10;k++){
  23.             if(n[k]<n[j]){
  24.                 s=n[k];
  25.                 n[k]=n[j];
  26.                 n[j]=s;
  27.             }

  28.         }
  29.     }

  30.     cout<<"10個範圍介於1~20之不重複隨機亂數 排序後:";
  31.     for(int i=0;i<=9;i++){
  32.         cout<<n[i]<<" ";
  33.     }

  34.     system("pause");
  35.     return 0;

  36. }
複製代碼

作者: 洪榮辰    時間: 2024-8-11 16:53

  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.     int x;
  8.     srand(time(NULL));
  9.     cout<<"10個範圍介於1~20之不重複隨機亂數, 由小而大依序為: "<<endl;
  10.     int a[10];
  11.     for(int i=0; i<=9; i++)
  12.     {
  13.         re:
  14.         a[i]=rand()%38+1;
  15.         for(int j=0; j<i; j++)
  16.         {
  17.             if(a[i]==a[j])
  18.                 goto re;
  19.         }
  20.     }
  21.     for(int i=0; i<=9; i++)
  22.     {
  23.         cout<<a[i]<<" ";
  24.     }

  25.     for(int i=0; i<=9; i++)
  26.     {
  27.         for(int j=0; j<=9; j++)
  28.         {
  29.             if(a[i]<a[j])
  30.             {
  31.                 x=a[j];
  32.                 a[j]=a[i];
  33.                 a[i]=x;
  34.             }
  35.         }

  36.     }
  37.     cout<<endl;
  38.     for(int i=0; i<=9; i++)
  39.     {
  40.         cout<<a[i]<<" ";
  41.     }
  42.     cout<<endl;
  43.     system("pause");
  44.     return 0;
  45. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2