注册 登录
编程论坛 C++教室

程序中有这样random和randomize头文件需要包含哪些?请指教

lindayanglong 发布于 2008-07-15 10:08, 6431 次点击
我的程序中有这样random和randomize
头文件包含有:
#include<iomanip>
#include<cstdlib>
#include<iostream>
using namespace std;
但是总是出错:
'random' : undeclared identifier
 'randomize' : undeclared identifier
请高手指点。我把完整程序也贴在下面:
#include<iomanip>
#include<cstdlib>
#include<iostream>
using namespace std;

template<class T>
int linsearch(T *v,int N, T key)
{
    for(int i=0;i<N;i++)
    {if (v[i]==key)return i;}
    return -1;
}

inline int RandI(int N)
{
    return random(N)+1;
}

int main()
{
    int index;
    int key=32;
    randomize();
    const int size=20;
    int data[size];

    for(int i=0;i<size;i++)
        data[i]=RandI(85);
    cout<<"\ndata's value are :"
        <<endl;
    for( i=0;i<size;i++)
    {
        cout<<setw(10)<<data[i];
        if(i%5==4)cout<<endl;
    }
    index=linsearch(data,size,key);
    if(index>-1)
        cout<<key<<"is the "<<index+1
        <<"th palce"<<endl;
    else
        cout<<"cannot find "<<key<<endl;
    return 0;
}
5 回复
#2
zjl1382008-07-15 20:50
#include<ctime>
#3
lindayanglong2008-07-16 10:07
加上#include<ctime>还是一样啊
加上#include<ctime>还是上面的错误,请帮帮忙
#4
zjl1382008-07-16 12:04
randomize()不是随机数生成函数,而是初始化随机数生成器的函数,而且,它不是一个C语言标准库函数.改用srand(unsigned(time(NULL)));我已在程序标明.
我把你改了一下,你看是不是你想要的结果:
#include<iomanip>
#include<cstdlib>
#include<iostream>
#include<ctime>
using namespace std;

template<class T>
int linsearch(T *v,int N, T key)
{
    for(int i=0;i<N;i++)
    {if (v[i]==key)return i;}
    return -1;
}

inline int RandI(int N)
{
    return rand()%N+1;      //你写成random(N)+1了.
}

int main()
{
    int index;
    int key=32;
    srand(unsigned(time(NULL)));         //这里改了.
    const int size=20;
    int data[size];

    for(int i=0;i<size;i++)
        data[i]=RandI(85);
    cout<<"\ndata's value are :"<<endl;
    for(int i=0;i<size;i++)
    {
        cout<<setw(10)<<data[i];
        if(i%5==4) cout<<endl;
    }
    index=linsearch(data,size,key);
    if (index>-1)
        cout<<key<<"is the "<<index+1<<"th palce"<<endl;
    else
        cout<<"cannot find "<<key<<endl;
    return 0;
}
#5
lindayanglong2008-07-16 13:28
十分感谢楼上的
#6
liuruima2008-10-02 22:18
张耀仁的书在Borland C++ Complier上用的,用VC有些意外的麻烦
1