[ad_1]
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; } }
我尝试过的:
我尝试将 num1&2 定义为参数括号中的随机数。
但考虑到所有事情,我不知道该尝试什么。
解决方案2
当您致电 rand
函数时,它返回一个随机数:它不会使您分配的变量在每次使用时更改其值。
不幸的是,您的代码是如此损坏,以至于我无法弄清楚您到底输入了什么:我无法从中编译出任何内容。
但是……如果你想要两个随机数,你需要打电话 rand
两次:
C
num1 = rand(); num2 = rand();
其次,这些数字是(伪)随机的:可以是 0 到 RAND_MAX 范围内的任何值(实际上最小为 32,767),因此要获得特定范围,您需要对两个返回值使用模运算符,不只是一个。
第三,如果你想要0到99之间的数字,你需要使用 x % (upperValue + 1)
: 如果你起诉 x % 99
这些值将在 0 到 98 之间(包括 0 和 98),而不是 0 到 99!
看这里: C/C++ 中的模运算符 (%) 及示例 – GeeksforGeeks[^]
解决方案3
将您的要求改写为“生成 0 到 99 之间的两个随机数之和的函数“,我会写
C++
int sum_of_rand() { int a1 = rand() % 100; int a2 = rand() % 100; return (a1+a2); }
[ad_2]
コメント