C语言随机数的生成---入门篇
一.rand函數和srand函數
在c語言中比較常用的隨機函數就是rand函數,它可以隨機的產生0~rand_max的隨機數,定義類型不同,最大值也不同,rand函數包含在頭文件stdlib.h中。
#include <stdio.h> #include <stdlib.h> int main() {int a=rand();printf("%d",a);return 0; }你會發現每次產生的隨機數都是相同的,因為rand函數產生的隨機數是偽隨機數,是根據一個數按照某個公式推算出來的,這個數我們稱之為“種子”,但是這個種子在系統啟動后就是一個定值。
要想每次產生的隨機數不一樣,那么,我們就要用到srand函數。
如何產生隨機數
#include <stdio.h> #include <stdlib.h> #include <time.h>int main(int argc, const char *argv[]) { // long t = time(NULL);//因為時間是不斷變化,每次運行程序,時間變化了,隨機的種子就變化了,序列就變化了 // srand(t);srand(time(NULL)); //初始化隨機種子是while(1){int num = rand();//如果直接調用rand函數,得到的是偽隨機數printf("num is %d\n",num % 35 + 1);sleep(1);}return 0; }經典例題!!
1.隨機生成一個1 - 10的數,讓對方猜5次,如果猜對了,提示"congratulations !!"? 如果猜錯了,提示"bigger" 或 "smaller"
#include <stdio.h> #include <stdlib.h> #include <time.h>int main(int argc, const char *argv[]) {//1.要想生成隨機數,必須先初始化隨機種子srand(time(NULL));//生成一個隨機數,給別人猜int num = rand() % 10 + 1;int a,i;//用來保存輸入猜的數for(i = 0; i < 5; i++){scanf("%d",&a);if(a == num){printf("恭喜你,猜對了!!\n");break;}else if(a > num){printf("大了!!\n");}else // a < num {printf("小了!!\n");}}return 0; }2.中國福利彩票35選7
?? ?
?? ??? ?隨機生成1-35內不重復的7個數字
?? ??? ?然后讓用戶選擇自己的一組號碼
?? ??? ?中獎規則:猜中
?? ??? ?
?? ??? ?7個500萬
?? ??? ?6個100萬
?? ??? ?5個1萬
?? ??? ?4個5000
?? ??? ?3個500
?? ??? ?0,1,2個沒中獎
?? ??? ?
?? ?//1. 生成7個中獎號碼 int lotteryNum[7]//注意生成7個中獎號碼,有可能重復, 中獎號檢測去重
?? ?//2. 輸入7個數,買彩票 int myMum[7]; //手動輸入7個數
?? ?//3. 統計中獎個數?
?? ?//4. 打印輸出中獎信息
接下來我會繼續補充相關知識~~剛剛開始!!!
總結
以上是生活随笔為你收集整理的C语言随机数的生成---入门篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dlib实现人脸检测方法
- 下一篇: 江苏大学885程序设计