[英]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.