真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

c語言如何整除隨機函數 c語言隨機取數設定范圍

c語言如何隨機100以內的加減乘除算術題

如果只包含一個運派碰算符你可以直接隨機數,首先給運算符編號:如:+1,-2,*3,÷4然后表達式:a=隨機函數算出的100以內整數b=隨機函數算出的100以內整數c=隨機運算符的編號塵早談然后casecc=1//即加法的時候計算a+bc=2//即減法的時候計算a-b(此時需要判斷a和b的大小,如果ab,應該需要重新隨機a和b)c=3//即乘法的時候計算a*bc=4//即除法的睜知時候計算a/b(需要判斷b是否為0,為0則需要重新隨機b,當a!=a/b*b時即a無法整除b的時候也需要重新隨機b)

成都創(chuàng)新互聯(lián)成都企業(yè)網站建設服務,提供網站設計制作、做網站網站開發(fā),網站定制,建網站,網站搭建,網站設計,響應式網站建設,網頁設計師打造企業(yè)風格網站,提供周到的售前咨詢和貼心的售后服務。歡迎咨詢做網站需要多少錢:18982081108

C語言中取隨機數的函數

1. 基本函數

在C語言中取隨機數所需要的函數是:

 int rand(void); void srand (unsigned int n);

rand()函數和srand()函數被聲明在頭文件stdlib.h中,所以要使用這兩個函數必須包含該頭文件:

 #include stdlib.h

2. 使用方亂雀法

rand()函數返回0到RAND_MAX之間的偽隨機數(pseudorandom)。RAND_MAX常量被定義在stdlib.h頭文件中。其值等于32767,或者更大。

srand()函數使用自變量n作為種子,用來初始化隨機數產生器。只要把相同的種子傳入srand(),然后調用rand()時,就會產生相同的隨機數序列。因此,我們可以把時間作為srand()函數的種子,就可以避免重復的發(fā)生。如果,調用rand()之前沒有先調用srand(),就和事先調用srand(1)所產生的結果一樣。

舉個例子,假設我們要取得0~10之間的隨機整數(不含10本身):

 /* 例1:不指定種子的值 */

 for (int i=0; i10; i++) { printf("%d ", rand()%10); }

  每次運行都將輸出:1 7 4 0 9 4 8 8 2 4

 /* 例2:指定種子的值為1 */

 srand(1); for (int i=0; i10; i++) { printf("%d ", rand()%10); }

  每次運行都將輸出:1 7 4 0 9 4 8 8 2 4

  例2的輸出結果與例1是完全一樣的。

 /* 例3:指定種子的值為8 */嘩塵早 srand(8); for (int i=0; i10; i++) { printf("%d ", rand()%10); }

  每次運行都將輸出:4 0 1 3 5 3 7 7 1 5

  該程序取得的隨機值也是在[0,10)之間,與srand(1)所取得的值不同,但是每次運行程序的結果都相同。

 /* 例4:指定種子值為現(xiàn)在的時間 */ srand((unsigned)time(NULL)); for (int i=0; i10; i++) { printf("%d ", rand()%10); }

  該程序每次運行結果都不一兄廳樣,因為每次啟動程序的時間都不同。另外需要注意的是,使用time()函數前必須包含頭文件time.h。

 3. 注意事項

求一定范圍內的隨機數。

  如要取[0,10)之間的隨機整數,需將rand()的返回值與10求模。

 randnumber = rand() % 10;

  那么,如果取的值不是從0開始呢?你只需要記住一個通用的公式。

  要取[a,b)之間的隨機整數(包括a,但不包括b),使用:

  (rand() % (b - a)) + a

偽隨機浮點數。

  要取得0~1之間的浮點數,可以用:

  rand() / (double)(RAND_MAX)

  如果想取更大范圍的隨機浮點數,比如0~100,可以采用如下方法:

  rand() /((double)(RAND_MAX)/100) 其他情況,以此類推,這里不作詳細說明。

求編程高手,c語言編寫產生十道十以內的除法,數字隨機產生且必須整除,并且每題正確得十分,錯誤零分,統(tǒng)

檢查的時候發(fā)現(xiàn)之前的代碼完成1~10的整除

沒有0的,

可以在初始化的地方補上:(那么就是38個)

for (int i=0; i饑空11; i++)

{

char temp[20];

sprintf(temp," 請運算 0÷%d = ",i);

strcpy(atc[i+27].equation,temp);

atc[i+27].cque = '0';

}

如果要把10的運算拿掉,那么是34個,修改就不做了,方法已經告肢和很明顯了

==========================================

此題如果想到生成1-9隨機數,然后 .... 那么你就入套了

愛好思考的同志,誰能想到最好的算法么,我能想到的只是如下了

你有更好的更簡潔的,記得告訴我下,交流交流嘛

/********************************************\

* c語言編寫產生十道十以內的除法,

* 數字隨機產生且必須整除,

* 并且每題正確得十分,錯誤零分,統(tǒng)計得分

*

* 說明

* 1 均要求整數,而且在10以襪盯內,所以先把情況窮舉

* 2 一共有27種個運算式

* 2 隨即數rand()%27來選擇算式,達到均勻

* 2 否則出現(xiàn)的 1÷1 情況概率最大

\********************************************/

#includestdlib.h

#includestdio.h

#includestring.h

#includeconio.h

struct Formula

{

char equation[20]; //存儲算式

char cque; //算式結果

};

void initialization(Formula *);

void main()

{

int j=0; //27個隨即號

char tmp=0; //輸入暫存器

int score=0; //統(tǒng)計成績

struct Formula atc[28];

initialization(atc); //初始化,看不懂么?

printf("請您認真練習除法運算 (由于用getch簡單,結果10直接輸入0)\n\n");

for (int i=0;i10;i++)

{

//取得隨即算式

j=rand()%27;

printf("%s",atc[j].equation);

tmp=getch();

//我這里用getch后回顯,并用0代替10,是為了提高調試效率

if ( tmp == '0' )

{

printf("10");

}

else

{

printf("%c",tmp);

}

//檢查運算

if ( tmp == atc[j].cque )

{

score+=10;

printf("\t正確\n");

}

else

{

printf("\t錯誤\n");

}

}

//輸出成績

printf("\n");

printf("\n您的成績:%d\n",score);

}

//如果用產生1~9隨即數的辦法,你看27種情況里面,

//1÷1出現(xiàn)的概率將是最多的,而且還要編寫驗證結果是整數的函數

void initialization(Formula * atc)

{

strcpy(atc[0].equation," 請運算 10÷10 = ");

atc[0].cque = '1';

strcpy(atc[1].equation," 請運算 10÷5 = ");

atc[1].cque = '2';

strcpy(atc[2].equation," 請運算 10÷2 = ");

atc[2].cque = '5';

strcpy(atc[3].equation," 請運算 10÷1 = ");

atc[3].cque = '0';

strcpy(atc[4].equation," 請運算 9÷9 = ");

atc[4].cque = '1';

strcpy(atc[5].equation," 請運算 9÷3 = ");

atc[5].cque = '3';

strcpy(atc[6].equation," 請運算 9÷1 = ");

atc[6].cque = '9';

strcpy(atc[7].equation," 請運算 8÷8 = ");

atc[7].cque = '1';

strcpy(atc[8].equation," 請運算 8÷4 = ");

atc[8].cque = '2';

strcpy(atc[9].equation," 請運算 8÷2 = ");

atc[9].cque = '4';

strcpy(atc[10].equation," 請運算 8÷1 = ");

atc[10].cque = '8';

strcpy(atc[11].equation," 請運算 7÷7 = ");

atc[11].cque = '1';

strcpy(atc[12].equation," 請運算 7÷1 = ");

atc[12].cque = '7';

strcpy(atc[13].equation," 請運算 6÷6 = ");

atc[13].cque = '1';

strcpy(atc[14].equation," 請運算 6÷3 = ");

atc[14].cque = '2';

strcpy(atc[15].equation," 請運算 6÷2 = ");

atc[15].cque = '3';

strcpy(atc[16].equation," 請運算 6÷1 = ");

atc[16].cque = '6';

strcpy(atc[17].equation," 請運算 5÷5 = ");

atc[17].cque = '1';

strcpy(atc[18].equation," 請運算 5÷1 = ");

atc[18].cque = '5';

strcpy(atc[19].equation," 請運算 4÷4 = ");

atc[19].cque = '1';

strcpy(atc[20].equation," 請運算 4÷2 = ");

atc[20].cque = '2';

strcpy(atc[21].equation," 請運算 4÷1 = ");

atc[21].cque = '4';

strcpy(atc[22].equation," 請運算 3÷3 = ");

atc[22].cque = '1';

strcpy(atc[23].equation," 請運算 3÷1 = ");

atc[23].cque = '3';

strcpy(atc[24].equation," 請運算 2÷2 = ");

atc[24].cque = '1';

strcpy(atc[25].equation," 請運算 2÷1 = ");

atc[25].cque = '2';

strcpy(atc[26].equation," 請運算 1÷1 = ");

atc[26].cque = '1';

}


新聞標題:c語言如何整除隨機函數 c語言隨機取數設定范圍
文章分享:http://weahome.cn/article/dsppoip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部