我试图返回或重复该功能,如果它的结果不符合标准。我尝试了各种各样的事情,例如do while
语句,设置BOOL
标志等,但都没有成功。在符合标准之前,重启函数的最佳方法是什么?
CODE:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
int main() {
std:int nine;
std::srand(std::time(NULL));
std::cout << nine << (rand() % 10);
std::cout << '\n';
if (nine == 9) {
std::cout << 'nine';
} else {
main();
}
}
答案 0 :(得分:2)
您可能无法在C ++中递归调用main。您的代码还包含一些其他错误。该计划可能看起来如下。
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
std::srand( ( unsigned )std::time( NULL) );
int nine;
do
{
nine = std::rand() % 10;
} while ( nine != 9 );
std::cout << "nine" << std::endl;
}
您还可以添加输出语句
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
std::srand( ( unsigned )std::time( NULL) );
int nine;
do
{
nine = std::rand() % 10;
std::cout << nine << std::endl;
} while ( nine != 9 );
std::cout << "nine" << std::endl;
}
答案 1 :(得分:1)
while循环应该可以正常工作:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
int main() {
int nine = 0;
srand(std::time(NULL));
while (nine != 9)
{
nine = (rand() % 10);
std::cout << nine << std::endl;
if (nine == 9) {
std::cout << 'nine';
}
}
}
答案 2 :(得分:1)
我认为您的问题出在nine
,您没有指定
nine = rand()%10;
并且使用基本循环它应该没问题
while ( nine != 9){
nine = rand()%10;
}
答案 3 :(得分:1)
您可以执行以下操作:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
int main() {
std::srand(std::time(NULL));
do {
std:int nine;
std::cout << nine << (rand() % 10);
std::cout << '\n';
if(nine == 9) {
std::cout << 'nine';
break;
}
} while(true);
}
请注意,您永远不会在代码中更改nine
,循环将永远存在。
答案 4 :(得分:0)
由于std:int
(缺少冒号错误),此特定代码甚至无法编译。但假设输入错误是固定的,它也不会做任何事情,因为你从未给nine
赋值。
无论如何,如果你想在你的代码中重复一个动作,你最好的选择是循环:
int nine = 0;
do {
nine = rand() % 10;
} while (nine != 9);