Je crée un jeu simple qui génère des sommes aléatoires de nombres entre 0 et 99 mais je n’arrive pas à comprendre ce qui ne va pas.

la programmation


C++
#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;
}
 
 
}

Ce que j’ai essayé :

J’ai essayé de définir num1&2 comme nombre aléatoire dans leurs parenthèses de paramètres.
Mais tout bien considéré, je ne sais même pas quoi essayer.

Solution 2

Quand tu appelles le rand fonction, elle renvoie un seul nombre aléatoire : elle n’oblige pas la variable que vous lui attribuez à changer sa valeur à chaque fois que vous l’utilisez.
Malheureusement, votre code est tellement corrompu que je ne parviens pas à comprendre exactement ce que vous avez tapé : je ne parviens pas à obtenir quoi que ce soit qui puisse être compilé à partir de cela.

Mais… si vous voulez deux numéros aléatoires, vous devez appeler rand deux fois:

C
num1 = rand();
num2 = rand();

Deuxièmement, les nombres sont (pseudo) aléatoires : cela peut être n’importe quelle valeur comprise entre 0 et RAND_MAX (qui en pratique sera un minimum de 32 767), donc pour obtenir une plage spécifique, vous devez utiliser l’opérateur Module sur les deux valeurs renvoyées, pas seulement un.
Troisièmement, si vous voulez des nombres compris entre 0 et 99 inclus, vous devez utiliser x % (upperValue + 1): si vous poursuivez x % 99 les valeurs seront comprises entre 0 et 98 inclus, et non 0 et 99 !
Vois ici: Opérateur Modulo (%) en C/C++ avec exemples – GeeksforGeeks[^]

Solution 3

Reformuler votre exigence comme “fonction qui génère la somme de deux nombres aléatoires compris entre 0 et 99“, Je souhaiterai écrire

C++
int sum_of_rand()
{
  int a1 = rand() % 100;
  int a2 = rand() % 100;
  return (a1+a2);
}

コメント

タイトルとURLをコピーしました