问题是:
我们希望能够对在野外发现的新动物进行分类。我们将使用
rand()
函数生成随机整数(0或1)来表示No或Yes 分别回答一系列问题。然后我们可以使用答案将动物分类为:
- 昆虫
- 爬行动物
- 鸟
- 哺乳动物
在每种情况下,问题都会继续,直到进行身份识别。对于每个问题,答案需要一个随机值。要识别每只动物,请使用嵌套的
if
-else
结构。
以下是一些带有输出的示例程序运行。每个示例都是一个独特的程序运行。
Random Animal Generator Is the animal a vertibrate? Yes – Not Insect Is the animal warm-blooded? Yes – Not Reptile Can the animal fly? Yes – The animal is a Bird!
Random Animal Generator Is the animal a vertibrate? No – The animal is an Insect!
Random Animal Generator Is the animal a vertibrate? Yes – Not Insect Is the animal warm-blooded? No – The animal is a Reptile!
我很困惑。如何生成所有else if
语句以便按顺序工作和回答?如何让他们回答是或否,然后让他们再次回答是或否,等等?另外我如何使用rand()
函数随机出现它们?
代码:
#include <iostream>
using namespace std;
main () {
char Answer;
cout<<" Random Animal Generator\n";
cout << "Is the animal a vertibrate?(1=Yes/0=No)? ";
cin >> Answer;
if(Answer == '1')
cout << "Not Insect \n";
else (Answer== '0')
cout<<"The animal is an Insect!\n";
cout<<endl;
system("pause");
}
答案 0 :(得分:2)
这是一个开始:
#include <iostream>
using namespace std;
int getRandomAnswer()
{ // code here to return a 1 or 0 randomly
}
main () {
cout<<" Random Animal Generator\n";
cout << "Is the animal a vertebrate?";
if(getRandomAnswer() == 1)
{
cout << "Yes - Not Insect \n";
cout << "Is the animal warm blooded?"
if (getRandomAnswer() == 1)
{
// Code for "warm blooded" case goes here
}
else
{
// Code for "not warm blooded" case goes here
}
}
else
{
cout<<"No. The animal is an Insect!\n";
}
cout<<endl;
}
此外,在任何情况下都不要使用system("pause");
。如果你想等待按键,那就去做吧。但是你无法知道在其他人的机器上是否有一个名为pause
的命令,或者如果有的话,它的作用是什么。例如,在我的机器上,有一个名为pause
的命令,它暂停我家用反应堆上的冷却液泵。想象一下,如果我在我的机器上测试了你的代码,可能会造成伤害!
答案 1 :(得分:0)
C库有一个函数rand()
,它返回一个从0到RAND_MAX的随机数。现在,您需要一个零或一个随机数。什么是一个好的函数,它取一个随机数并以相等的概率(或非常接近相等)返回0/1?
考虑自然数的属性。你需要一个大约有一半数量的属性而另一半没有。