簡體   English   中英

字符數組中的隨機數

[英]Random numbers from Char Array

我試圖從數組中隨機獲取一個數字,所以我這樣做是這樣的:

srand(time(NULL));
const char numbers[19] ={506001, 506002, 506003, 506004, 506005, 506006, 506007, 506008, 506009, 506010, 506011, 506012, 506013, 506014, 506015, 506016, 506017, 506018, 506019};
printf("%i",(int)numbers[rand() % 19]);
printf("\n");

但是,不是給我一個數組中的數字,而是打印其他任何負數。 輸出量

另外,對於少於3位數字的數字,它可以正常工作,當我使用3位或更多數字的數字時,問題就開始了。 我在做什么不好?

更改

const char numbers[19] ...

const long numbers[19] ...

字符為1字節( 對於大多數現代計算機,至少為8位 )。 您的電話號碼太大,無法容納一個字符。
long的大小(看起來像Windows系統)至少為32位。

您有一個const char numbers[19] ,即。 19個const(帶符號) char signed char只能保存從-128+127 ,其他任何數字都是不可能的。 使用const int numbers[19]

您正在將整數放入字符數組。 您可能想要:

const long numbers[19] ={506001, 506002, 506003, 506004, 506005, 506006, 506007, 506008, 506009, 506010, 506011, 506012, 506013, 506014, 506015, 506016, 506017, 506018, 506019};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM