0

问题如下:

我们希望能够对在野外发现的新动物进行分类。我们将使用该rand()函数生成随机整数(0 或 1)来分别表示一系列问题的“否”或“是”答案。然后我们可以使用答案将动物分类为:

  • 昆虫
  • 爬行动物
  • 鸟类
  • 哺乳动物

在每种情况下,问题都会持续到做出识别为止。对于提出的每个问题,答案都需要一个随机值。if要识别每种动物,请使用嵌套else结构。

以下是一些示例程序运行及其输出。每个示例都是一个不同的程序运行。

随机动物生成器

动物是脊椎动物吗?是——不是昆虫
动物是温血动物吗?是——不是爬行动物
动物会飞吗?是的——动物是鸟!

随机动物生成器

动物是脊椎动物吗?不——动物是昆虫!

随机动物生成器

动物是脊椎动物吗?是——不是昆虫
动物是温血动物吗?不——动物是爬行动物!

我很混乱。如何生成所有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"); 
}
4

2 回答 2

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暂停我家反应堆上的冷却剂泵。想象一下,如果我在我的机器上测试了你的代码,可能会造成什么危害!

于 2012-06-20T01:48:59.473 回答
0

C 库有一个函数rand(),它返回一个从 0 到 RAND_MAX 的随机数。现在,您需要一个零或一的随机数。什么是接受随机数并以相等概率(或非常接近相等)返回 0/1 的好函数?

想想自然数的性质。您需要一个大约一半的数字有而另一半没有的属性。

于 2012-06-20T01:53:49.250 回答