利用隨機函數產生20個[120, 834] 之間互不相等的隨機數,
?并利用選擇排序法將其從小到大排序后輸出(每行輸出5個)
代碼如下:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int shenchen(int a[], int n) //該函數用來生成n個 [ 120, 834 ] 之間互不相等的數
{int i;srand((unsigned int)time(NULL));for (i = 0; i < n; i++){a[i] = rand() % (834 - 120 + 1) + 120;int j = 0;for (j = 0; j < i; j++){if (a[j] == a[i])//只要判斷后一個的值與前一個值是否相等{i--;//若重復則重新生成break;}}}return 0;
}
int paixue(int a[], int n) //該函數用來對a數組中的n個數利用選擇排序法排序
//從小到大排序
{int i = 0,min=0,tmp=0;for (i = 0; i < n; i++){min = i;//令第一個為最小值int j = i+1;for (j =i+1; j < n; j++){if (a[min] > a[j]){min = j;}}tmp = a[i];a[i] = a[min];a[min] = tmp;}return 0;
}
int print(int a[], int n) //該函數用來輸出a數組中的n個數,每行輸出5個
{int i = 0;for (i = 0; i < n; i++){printf("%d ", a[i]);if ((i + 1) % 5 == 0){printf("\n");}}printf("\n");return 0;
}
int main()
{int shenchen(int a[], int n); //該函數用來生成n個 [ 120, 834 ] 之間互不相等的數int paixue(int a[], int n); //該函數用來對a數組中的n個數利用選擇排序法排序int print(int a[], int n); //該函數用來輸出a數組中的n個數,每行輸出5個int x[20] = { 0 };shenchen(x, 20);print(x, 20);paixue(x, 20);print(x, 20);return 0;
}
編譯舉例子結果如下 :