1. 程式人生 > >C程式設計——模擬10位QQ賬號的生成

C程式設計——模擬10位QQ賬號的生成

1、要求:
I、首位不為0
II、10位陣列來存放
III、陣列轉整型並輸出到控制檯
2、程式

/*
	在呼叫rand()函式產生隨機數前,必須先利用srand()設好隨機數種子,
	srand(time(NULL))則使用系統定時/計數器的值作為隨機種子。
	
	系統在呼叫rand()之前都會自動呼叫srand(),
	如果使用者在rand()之前曾呼叫過srand()指定了一個值,
	那麼 rand()就會將其值作為產生偽隨機數的初始值;
	而如果使用者在rand()前沒有呼叫過srand(),
	那麼系統預設將1作為偽隨機數的初始值。
	如果給了一個定值,那麼每次rand()產生的隨機數序列都是一樣的。
*/

#include <stdio.h>
#include <stdlib.h> //包括rand()、srand()、abs()等函式
#include <time.h>

void Random_Numbers (int *, int);//輸出指定位數隨機數
long long  Array_To_Int(int *, int);//陣列--整型

int main()
{	
	int a1[99] = {0};
	long long num1 = 0;
	
	Random_Numbers (a1, 10);
	num1 = Array_To_Int( a1, 10);
	printf ("您申請的QQ帳號為:%lld\n",num1);
	
    return 0;
}

void Random_Numbers (int *array, int len)
{
	int i = 0;
	
	if ( len < 0 || NULL == array)
	{
		return ;
	}
	
    srand((unsigned int)time(NULL));	

    for (i = 0; i < len+1; ++i)
    {		
		while (0 == i)
		{
			array[i] = rand()%9+1;//1-9共9個數字,從1開始。產生1-9間的整數。QQ首位不為0
			++i;
			continue;
		}
		array[i-1] = rand()%10;//隨機產生1-10的數
    }
}
	
long long Array_To_Int(int *array, int  len)//陣列--整型
{
	int i = 0;
	long long num = array[0];
	
	if ( len < 0 || NULL == array)
	{
		return ;
	}
	
	for (i = 1; i < len; ++i)
	{
		num = 10 * num + array[i];
	}
	
	return num;
}

3、測試結果
您申請的QQ帳號為:6178703243