C++ C++;

C++ C++;,c++,C++,我有以下代码: #include <cstdlib> #include <iostream> #include <stdlib.h> using namespace std; int main() { int a,n,count; count=0; randomize(); a=1+random(100); cout<<"Enter A No. Between 1 to 100"; do { cin>>n

我有以下代码:

#include <cstdlib>
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
 int a,n,count;
 count=0; randomize();
 a=1+random(100);  
 cout<<"Enter A No. Between 1 to 100";
 do
  { 
    cin>>n;
    count++;
    if(n>a)
           cout<<"Enter a lower no.";
    else if(n<a)
           cout<<"Enter a higher no.";
    }while(n!=a);
cout<<count;

system("PAUSE");
return EXIT_SUCCESS;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
int a,n,计数;
计数=0;随机化();
a=1+随机(100);
coutn;
计数++;
如果(n>a)

cout您正试图调用的方法被调用并被调用

randomize
random
不是该语言的一部分。

您正在使用一个名为“randomize”的函数(此处:
count=0;randomize();
)——编译器不知道在哪里可以找到该函数,因为它既没有在代码中定义,也没有包含在任何标题中

我怀疑你想要和我结婚


例如,您可以按如下方式重写现有代码。要使用此代码,您还需要在include中包含

int main()
{
 int a,n,count;
 count=0; 
 srand(time(NULL)); // use instead of "randomize"
 a = 1 + (rand() % 100); 
 // ... Rest of your code

标准C中没有
randomize()
random()
函数。您的意思可能是
srand()
rand()

> .>代码> RAND()%n>代码>在0(n,n)范围内不均匀地给出一个数字。

<代码>随机数()>代码>不是标准的C++函数,你必须使用<代码> SRAND(某物)< /C>来生成一个随机数生成器,其中<代码>某物< /C> >将是当前时间(<代码>时间(0)< /代码>)。 另外,
random()
不是标准函数,您必须使用
rand()

所以,像这样的事情(稍微清理一下):

#包括
#包括
#包括
使用名称空间std;
int main()
{
srand(时间(0));
int n,计数=0;
int a=1+(rand()%100);
cout>n;
计数++;
如果(n>a)

cout如果您有一个包含
的C++11编译器(如果您没有,可以使用boost库中的
boost::random
),则可以使用该类获得更好的伪随机数:

#include <ctime>
#include <random>

class rng
{
private:
    std::mt19937 rng_engine;

    static rng& instance()
    {
        static rng instance_; 
        return instance_;
    }

    rng() {
        rng_engine.seed(
            static_cast<unsigned long>(time(nullptr))
            );
    };

    rng(rng const&);
    void operator=(rng const&);

public:
    static long random(long low, long high)
    {
        return std::uniform_int_distribution<long>
              (low, high)(instance().rng_engine);
    }
};

不必手动播种,因为它将被播种在第一个调用。

到目前为止,4个完全重复的答案:“对于Turbo C++,没有一个对我有用。这是OK的,但是在DEV C++边注意:代码不需要同时<代码> <代码>和<代码> <代码>。@您的回答是非常有用的。这些函数不是I。n标准C也不在标准C++中。如果不需要移植性,使用非标准函数是可以的,但是当你尝试使用多个编译器时,你需要编写可移植代码。顺便说一下,尽管代码是正式的C++,但是随机数的东西是纯C。没有任何本质上的错误,但是有更好的随机数设施。在C++中,如果您有Tr1或C++ 11或Boo..33D:\DEV CPP\\\STDLI.h,函数“<代码>空格Srand(未签名int)”342 d:\DEVCPP包含\\STDLIB的函数太少,函数太多的参数< /代码> int RAND()“换了这个之后,我得到了这些errors@user142187我不会为你写代码。你点击链接了吗?你有没有尝试用谷歌搜索如何正确使用
srand
?@user142187-是的,你需要知道这些函数需要什么参数才能调用它们。查一下。如果你也能完成我的工作,那就太好了,所以我可以在周末去。@user142187如果你不能用谷歌来找出如何调用一个简单的函数,我建议你换专业。@user142187我修改过-但我发布的链接中包含了所有这些作为示例,所以这至少应该给你一个起点…但请记住,
rand()%N
不统一地给出[0,N]范围内的数字。请参阅:@MarcusRiemer在大多数情况下这是一个很好的近似值,基于代码的其余部分,不需要绝对统一的随机数。如果您是初学者,通常不必为如此复杂的问题而烦恼,我添加此项只是为了“以C++的方式做更多”
#include <ctime>
#include <random>

class rng
{
private:
    std::mt19937 rng_engine;

    static rng& instance()
    {
        static rng instance_; 
        return instance_;
    }

    rng() {
        rng_engine.seed(
            static_cast<unsigned long>(time(nullptr))
            );
    };

    rng(rng const&);
    void operator=(rng const&);

public:
    static long random(long low, long high)
    {
        return std::uniform_int_distribution<long>
              (low, high)(instance().rng_engine);
    }
};
long a = rng::random(a, b);