2017-10-18 7 views

Répondre

0

L'expression ne peut pas être traduit directement, comme rand() rendements nombres à virgule flottante de Tcl (dans la gamme de 0,0 à 1,0) à la différence de rand() C++, qui retourne un entier. Mais à peu près morale équivalente est la suivante:

expr { int(rand() * ($max - $min)) + $min } 

Nous pouvons conclure cela dans une procédure peu pour le rendre encore plus facile à utiliser (il est juste comme écrire une fonction d'assistance en C++):

proc randInRange {min max} { 
    return [expr { int(rand() * ($max - $min)) + $min }] 
} 

# Example of calling it and using the result: 
puts [randInRange 1 10] 
+0

Merci pour votre réponse Donal, Mais pourquoi nous ne pouvons pas utiliser (%), en raison de dans l'équation, il a utilisé le mode diviser (%) plutôt que la multiplication. – Qusay

+0

Parce que 'rand()' de Tcl retournera un nombre à virgule flottante entre '0.0' et' 1.0', tandis que C 'rand()' retournera un entier. –

+0

Ok ... Merci pour votre réponse et vos efforts. – Qusay