2016-04-10 22 views
1

我一直在試着用10個問題做一個隨機數字測驗,但是我的循環並沒有停止,只是第一個問題。如何用C++中的10個問題進行隨機數字測驗?

我試圖讓循環一次一個問題,並且當用戶回答question1時,它將進入question2等等,直到所有10個問題都被回答,並且每個正確的答案將被添加到分數1每個問題的點數。誰能幫我這個?

編輯:1 好的我改變了代碼,就像你說的這樣吧?

#include <cstdlib> 
#include <iostream> 
using namespace std; 

int main() 
{ 
    int Player = 0; 
    int question = 1; 
    int nquestion = 10; 
    int choice = 0; 

    int qanswere1 = 0; 
    int panswere1 = 0; 

    int num1 = 0; 
    int num2 = 0; 
    int score = 0; 

    cout << "Lets Start" <<endl; 
    cout << "[1] Addition" <<endl; 
    cout << "[3] End" <<endl; 
    cout << "Choose: "; 
    cin >>choice; 

    if(choice == 1){ 
     choice = 0; 

     cout << "Level" <<endl; 
     cout << "[1] Easy (1 - 10)" <<endl; 
     cout << "Choose: "; 
     cin >> choice; 

     while(choice == 1){ 
      for(question = 1; question <= nquestion; question = question + 1){ 
       num1 = rand()%10 +1; 
       num2 = rand()%10 +1; 
       cout<<num1<<"+"<<num2<<endl; 
       qanswere1 = num1 + num2; 
       cin>>panswere1; 
      }} 
     if(panswere1 == qanswere1){ 
      score = score + 1; 
     } 
     else{ 
     } 
     return 0; 
    } 
} 
即使有這樣的代碼,它仍然超出了10個問題,我是做錯了什麼

..

回答

0

爲了使循環停靠,輸入一個問題,然後再進行進一步的問題(S ),儘量採取對輸入的循環內的變量panswere1,就像這樣:

for(question = 1; question <= nquestion; question = question + 1){ 
    num1 = rand()%20 +1; 
    num2 = rand()%20 +1; 
    coutnum1"+"num2endl; 
    qanswere1 = num1 + num2; 
    cin>>panswere1; 
} 

注1:看什麼的第一個for循環是幹什麼的,它可以很好地通過

實現
while(choice == 1){.. 

不影響代碼的可讀性。

乾杯!

編輯1:
爲了使代碼停在10個問題,你將有一個簡單的,如果條件來代替外環

for (choice ==1; choice==1; choice==1){.. 

if(choice == 1){.. 

問題與for循環是它將運行無限次,因爲你沒有添加任何機制來限制它將執行的次數。如果你不得不將問題的數量限制在10個,我建議用這個if語句替換循環。

編輯2:
你將不得不使用if條件來代替內,而環太:
更換

while(choice == 1){.. 

if(choice == 1){.. 
+0

THX的作品!但我怎麼能限制到10現在超過10現在對不起,如果我沒有理解它 –

+0

@genesia假設你已經將10分配給你的變量'nquestion',循環將運行10次。 –

+0

不要忘記接受答案,如果它可以解決你的疑問:) –