0
隨機數我有一個struct
稱爲drug
,我想爲會員minimal_quantity
和quantity
產生隨機數。但每次運行代碼時,我都會在這兩個成員中得到相同的值,即所有生成的藥物。生成成員結構
我的結構定義是這樣的:
struct drug {
int code;
char name[25];
int minimal_quantity;
int quantity;
};
和產生藥物的方法是這樣的:
load_drugs_file(){
int i;
for(i=0;i<=50;i++){
if ((fp=fopen("drugs.dat","a+"))==NULL){
printf("Error: impossible to open the file. \n");
exit(1);
}
struct drug m;
srand(time(NULL));
int r1 = rand() % 500; /* random int between 0 and 499 */
int r2 = rand() % 1000; /* random int between 0 and 999 */
m.code=i;
strcpy(m.name,"A");
m.minimal_quantity=r1;
m.quantity=r2;
fwrite(&m,sizeof(m),1,fp);
fclose(fp);
}
}
有什麼建議?
你可以顯示你得到的輸出嗎?另外,我強烈建議將循環的'fopen'和'fclose' ** ** **。沒有理由繼續打開和關閉文件。 – dg99
爲什麼不是在該函數的名稱之前指定的返回類型? –
你怎麼知道你總是得到相同的兩個「隨機」數字? –