我需要在用戶定義的範圍內生成一個隨機整數。它需要使用一個變量來存儲函數調用的結果,並且只需要在每次調用時更新該變量。需要在指定範圍內生成一個隨機整數
,其使用輸入來產生隨機數的函數:
int genRandInt (int smallnum, int bignum) {
int randnum = smallnum + (rand() % (bignum - smallnum + 1));
return randnum;
}
主要功能:
int main()
{
srand(time(NULL));
int smallnum;
int bignum;
int z = genRandInt(smallnum, bignum);
cout << "Enter the smallest possible number: ";
cin >> smallnum;
cout << "Enter the biggest possible number: ";
cin >> bignum;
genRandInt(smallnum, bignum);
cout << "Random number: " << z << endl;
genRandInt(smallnum, bignum);
cout << "Random number: " << z << endl;
genRandInt(smallnum, bignum);
cout << "Random number: " << z << endl;
return 0;
}
程序運行,但它一直返回三個相同數量的,其中沒有一個處於用戶定義的範圍內。例如,對於每個函數調用,執行10和100的範圍將返回267499385。
任何想法這裏有什麼問題嗎?我很生鏽。
編輯:用int z;
替換int z = genRandInt(smallnum, bignum);
的初始定義。然後我用z = genRandInt(smallnum, bignum);
替換了三個函數調用,現在看起來工作正常。這是正確的嗎?還是有更好的方法呢?
EDIT2:看來這是一個很好的方法。感謝大家。
用'int z;'代替'int z = genRandInt(smallnum,bignum);'的初始定義。然後我用'z = genRandInt(smallnum,bignum)'替換了三個函數調用;'現在看起來工作正常。這是正確的嗎?還是有更好的方法呢? –