C語言程式生成指定範圍的不重複的隨機數

打孔員發表於2020-09-24

用C語言程式輸出指定範圍的不重複的隨機數
本程式以輸出50個範圍為1-50的不重複的隨機數為例

程式碼如下:

/*
用C語言程式輸出指定範圍的不重複的隨機數
本程式以輸出50個範圍為1-50的不重複的隨機數為例 
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
	int a[50],i=0,j,r;
	srand((int)time(0));   //用當前時間作為隨機種子 
	while(i<50)
	{
		r=rand() % 50 + 1;  //生成一個1-50的隨機數 
		for(j=i;j>=0;j--)
		{
			if(r==a[j])     //與之前已存的隨機數比較 
				break;
		}
		if(j<0)             //沒有重複即儲存到陣列中 
		{
			a[i]=r;
			i++;
		}
	}
	while (i--)            //從陣列中輸出這50個範圍在1-50的不重複的隨機數 
	{
		printf("rand_num[%d] = %d\n",50-i,a[i]);
		getchar();	
	}
	
	system("pause");
	return 0;
}

相關文章