2014-01-05 117 views
0

在爲一個初學C++類做的一件作業中,我應該編寫一個測試用戶數學技能的程序。我有一個關於事情的兩個問題:生成隨機數並繼續操作

void addition(){ 

srand (50); 

int result=0; 
int points=0; 
int counter=0; 

int nbr1 = 100 % rand(); 
int nbr2 = 100 % rand(); 

cout<<nbr1<<" + "<<nbr2<<" = "; 
cin>>result; 

if(result == nbr1+nbr2){ 
    cout<<"CORRECT"; 
    points+=10; 
    return; 
} 

if(result !=nbr1+nbr2){ 
    counter++; 
    cout<<"WRONG. TRY AGAIN"; 
} 

if (counter == 1){ 
    points+=5; 
} 


if (counter == 2){ 
    points+=2; 
} 


if (counter >= 2){ 
    points=0; 
    cout<<" WRONG!The anwser is "<<nbr1+nbr2<<endl; 
    return; 
} 

(代碼中的一個功能)

兩個問題:

1)程序生成的編號總是110有沒有辦法讓數字隨機(不總是110 :)和100以下?

2)如何在一個程序後繼續提問問題?現在它結束後,用戶輸入一個值:

110 + 110 = 220 
CORRECT Program ended with exit code: 0 

在此先感謝!

+1

要保持數量在100以下,你想'rand()%100;'而不是'100%rand();' –

+0

謝謝!這有幫助! – Miko

回答

0

你總是使用函數srand相同的種子,嘗試srand(time(NULL));

0

你需要每次給srand不同的值,以獲得不同的號碼,你可以使用時間:

#include <time.h> 
srand(time(NULL)); 
+0

謝謝!我忘了添加 Miko