簡體   English   中英

如何用C ++中的10個問題進行隨機數數學測驗?

[英]How to make a random number math quiz with 10 questions in C++?

我一直試圖用10個問題做一個隨機數字數學測驗,但我的循環並沒有停止只有第一個問題。

我試圖讓循環一次一個問題,當用戶回答問題1時,它將轉到問題2,依此類推,直到所有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個問題,我做錯了什么..

要使循環停止以首先獲取單個問題的輸入,然后繼續進一步的問題,嘗試在循環內獲取變量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循環:
更換

while(choice == 1){..

if(choice == 1){..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM