C語(yǔ)言中生成不從零開(kāi)始的隨機(jī)數(shù)方法
在C語(yǔ)言中,要生成隨機(jī)數(shù)通常需要使用`rand()`函數(shù)、`srand()`函數(shù)以及`time()`函數(shù)。在`iostream`頭文件中已經(jīng)包含了`srand()`函數(shù)的定義,因此無(wú)需額外引入`std
在C語(yǔ)言中,要生成隨機(jī)數(shù)通常需要使用`rand()`函數(shù)、`srand()`函數(shù)以及`time()`函數(shù)。在`iostream`頭文件中已經(jīng)包含了`srand()`函數(shù)的定義,因此無(wú)需額外引入`stdlib.h`頭文件;而如果要使用`time()`函數(shù),則需要引入`ctime`頭文件。
使用`rand()`函數(shù)獲取隨機(jī)數(shù)
如果只需生成一個(gè)隨機(jī)數(shù)而不需要指定范圍,可以直接使用`rand()`函數(shù),它會(huì)返回一個(gè)隨機(jī)數(shù)值。以下是示例代碼:
```c
include
include
int main() {
int randomNumber rand();
printf("Random number: %d", randomNumber);
return 0;
}
```
運(yùn)行以上代碼將得到一個(gè)隨機(jī)數(shù)作為輸出結(jié)果。
獲取一定范圍內(nèi)的隨機(jī)數(shù)
若需要在特定范圍內(nèi)生成隨機(jī)數(shù),只需對(duì)生成的隨機(jī)數(shù)進(jìn)行除法取余即可。以下是示例代碼:
```c
include
include
int main() {
int range 10; // 生成0-9范圍內(nèi)的隨機(jī)數(shù)
int randomNumber rand() % range;
printf("Random number within range: %d", randomNumber);
return 0;
}
```
運(yùn)行以上代碼將產(chǎn)生指定范圍內(nèi)的隨機(jī)數(shù)作為輸出結(jié)果。
生成隨機(jī)小數(shù)
`rand()`函數(shù)同樣可以用于生成隨機(jī)小數(shù)。例如,我們可以先生成0到10000之間的整數(shù),然后將該整數(shù)除以10000得到保留兩位小數(shù)的隨機(jī)小數(shù)。以下是示例代碼:
```c
include
include
int main() {
int randomInteger rand() % 10001; // 生成0-10000范圍內(nèi)的整數(shù)
float randomDecimal (float)randomInteger / 10000;
printf("Random decimal number: %.2f", randomDecimal);
return 0;
}
```
運(yùn)行以上代碼將輸出一個(gè)隨機(jī)小數(shù)。
通過(guò)以上程序,所生成的隨機(jī)數(shù)都不會(huì)從0開(kāi)始,只需適當(dāng)限制范圍即可。若需要生成隨機(jī)數(shù)隨著時(shí)間變化而變化,還可以利用`time()`函數(shù)。