[ad_1]
#include <iostream> #include <cstdlib> #include <ctime> #include <string> using namespace std; int sumFunc(int num1, int num2); char askYesNo(string question); int main() { srand(static_cast<unsigned int="">(time(0))); int ans; addition = sumFunc(int num1, int num2); cin>>ans; if (ans == addition) { cout<<"Correct! "<<ans<<"is the="" answer!"; ="" tryagain="askYesNo("Do" you="" wish="" to="" continue?"); ="" if="" (tryagain="=" "y")="" { ="" addition; ="" } ="" else="" break; ="" cout<<"wrong!"<<ans<<"="" is="" not="" answer."<<endl; ="" cout<<addition<<"="" answer."; ="" } ="" return="" 0; } int="" sumfunc(int="" num1,="" int="" num2)="" randomnumber="rand(); " num1="(randomNumber" %="" 99)="" +="" 1; ="" num2="(randomNumber" sum="num1" num2; ="" do="" cout<<num1<<"="" "<<num2<<"="?"; " ="" }while="" (num1="">= 0 && num2 >= 0); return num1 + num2; } char askYesNo(string question) { char response; do { cout<<question<<"(y n)="" ?"; ="" cin="">>response; }while (response != "y" && response != "n"); return response; } }
Apa yang saya coba:
Saya sudah mencoba mendefinisikan num1&2 sebagai angka acak dalam tanda kurung parameternya.
Tapi setelah mempertimbangkan semuanya, saya tidak tahu harus mencoba apa.
Solusi 2
Saat Anda menelepon rand
fungsi, ia mengembalikan satu nomor acak: ia tidak membuat variabel yang Anda tetapkan mengubah nilainya setiap kali Anda menggunakannya.
Sayangnya, kode Anda sangat rusak sehingga saya tidak dapat mengetahui apa yang sebenarnya Anda ketik: Saya tidak dapat memperoleh apa pun yang dapat dikompilasi dari kode tersebut.
Tapi…jika ingin dua nomor acak, Anda perlu menelepon rand
dua kali:
num1 = rand(); num2 = rand();
Kedua, angka-angka tersebut (semu) acak: dapat berupa nilai apa pun dalam rentang 0 hingga RAND_MAX (yang dalam praktiknya minimal 32.767) sehingga untuk mendapatkan rentang tertentu Anda perlu menggunakan operator Modulus pada kedua nilai yang dikembalikan, bukan hanya satu.
Ketiga, jika Anda ingin angka antara 0 dan 99 inklusif, Anda perlu menggunakan x % (upperValue + 1)
: jika kamu menuntut x % 99
nilainya akan berada di antara 0 dan 98 inklusif, bukan 0 dan 99!
Lihat disini: Operator Modulo (%) di C/C++ dengan Contoh – GeeksforGeeks[^]
Solusi 3
Mengungkapkan kembali kebutuhan Anda sebagai “fungsi yang menghasilkan jumlah dua angka acak antara 0 dan 99“, Saya akan menulis
int sum_of_rand() { int a1 = rand() % 100; int a2 = rand() % 100; return (a1+a2); }
[ad_2]
コメント