利用随机函数产生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;
}
编译举例子结果如下 :