標題:
排序 (二)
[打印本頁]
作者:
鄭繼威
時間:
2023-4-8 12:33
標題:
排序 (二)
本帖最後由 鄭繼威 於 2023-4-8 12:36 編輯
產生10個範圍介於1~20之
不重複
隨機亂數, 並利用
選擇排序法
將它們
由小而大
排列出來.
跟
排序 (一)
一樣,只是陣列的值不是一開始給定而是
產生出亂數再丟進陣列裡
至於怎麼產生?又要不重複?可以複習一下之前上的
產生介於指定範圍內的隨機亂數 (六)-不重複
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
srand(time(NULL));
int tmp;
int n[10]; //宣告長度為10的陣列
//產生10個範圍介於1~20之不重複隨機亂數放進n陣列裡
for(int i=0; i<=9; i++)
{
//n[i]=亂數
//1~20->0~19->rand()%20->rand()%20+1
n[i]=rand()%20+1; //1~20
//檢查
for(int j=0; j<=i-1; j++)
{
//如果跟前面一樣就退一步
if(n[i]==n[j])
{
i--;
break;
}
}
}
cout<<"排序前: ";
for(int i=0; i<10; i++)
{
cout<<n[i]<<" ";
}
cout<<endl;
//開始排序
for(int i=0; i<9; i++)
{
for(int j=i+1; j<10; j++)
{
//倆倆(i,j)比較
//右邊小於左邊就交換->換到最後最左邊會最小
if(n[j]<n[i])
{
//兩數交換
tmp=n[j];
n[j]=n[i];
n[i]=tmp;
}
}
}
cout<<"排序後: ";
for(int i=0; i<10; i++)
{
cout<<n[i]<<" ";
}
cout<<endl;
system("pause");
return 0;
}
複製代碼
作者:
陳牧謙
時間:
2023-4-8 14:34
此帖僅作者可見
作者:
陳泓亦
時間:
2023-4-8 14:36
此帖僅作者可見
作者:
陳宥霖
時間:
2023-4-8 14:42
此帖僅作者可見
作者:
徐啟祐
時間:
2023-4-8 14:50
此帖僅作者可見
作者:
林雋喆
時間:
2023-4-8 15:18
此帖僅作者可見
作者:
翁川祐
時間:
2023-4-8 15:24
此帖僅作者可見
作者:
宜儒
時間:
2023-4-8 15:29
此帖僅作者可見
作者:
吳俊頡
時間:
2023-4-14 20:40
此帖僅作者可見
作者:
楊芊琦
時間:
2023-5-13 08:40
此帖僅作者可見
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2