C++ の rand() と srand() の概念を理解するのに苦労しています。2 つの乱数を表示し、ユーザーに応答を入力させ、応答とメッセージを一致させ、これを 5 回行うプログラムを作成する必要があります。
私の質問は、それをどのように使用するかです。指示には、time()関数を使用できないと書かれており、rand()に関するオンラインのすべてのチュートリアルにあるようです。
これは私がこれまでに持っているものです。
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
int main()
{
int seed;
int response;
srand(1969);
seed=(rand()%10+1);
cout<<seed<<" * "<<seed<<" = ";
cin>>response;
cout<<response;
if(response==seed*seed)
cout<<"Correct!. you have correctly answered 1 out of 1."<<endl;
else
cout<<"Wrong!. You have correctly answered 0 out of 1."<<endl;
これは6 * 6または7 * 7のようなものを出力するだけです。シード変数は必ずしも異なるとは限りませんが、常に同じではないと思いましたか?
出力は次のようになります。
3 * 5 =
34
Wrongo. You have correctly answered 0 out of 1.
8 * 1 =
23
Wrongo. You have correctly answered 0 out of 2.
7 * 1 =
7
Correct! You have correctly answered 1 out of 3.
2 * 0 =
2
Wrongo. You have correctly answered 1 out of 4.
8 * 1 =
8
Correct! You have correctly answered 2 out of 5.
Final Results: You have correctly answered 2 out of 5 for a 40% average.
要件は次のとおりです。
プログラムでは、必要に応じて rand() を使用して疑似乱数を生成する必要があります。srand() を使用して乱数ジェネレーターを初期化できますが、プラットフォームに依存する可能性が高いため、「自動」イニシャライザー (time() 関数など) は使用しないでください。プログラムでループを使用しないでください。