[英]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.