求教!!
#include <time.h>
#include <iostream.h>
class Randgen
{
public:
Randgen(unsigned long initSeed=(unsigned long )time(NULL));
void SetSeed(unsigned long newSeed=(unsigned long )time(NULL));
unsigned short operator()(unsigned short lim);
private:
unsigned long Seed;
};
inline Randgen::Randgen(unsigned long initSeed)
{
Seed=initSeed;
}
inline void Randgen::SetSeed(unsigned long newSeed)
{
Seed=newSeed;
}
unsigned short Randgen::operator()(unsigned short lim)
{
Seed=Seed*570942UL+1UL;
return (unsigned short)((Seed>>16UL)%lim);
}
int main(void)
{
int i;
Randgen rg1;
Randgen rg2(1701);
for( i=0;i++;i<20)
cout <<'\t'<<rg1(i)<<'\t'<<rg2(i)<<endl;
return 0;
}
那位高手帮我调调,谢谢!!
问题点数:20、回复次数:2Top
1 楼smalltalk(老徐)回复于 2003-11-04 00:02:02 得分 20
最好用
#include <iostream>
替换
#include <iostream.h>
另外,你的main函数有两处错误:
1) i = 0开始,里面的%操作会除零溢出。
2)应该是for( i=1;i<20;i++),而不是for( i=0;i++;i<20)
明白?
int main(void)
{
int i;
Randgen rg1;
Randgen rg2(1701);
for( i=1;i<20;i++)
cout <<'\t'<<rg1(i)<<'\t'<<rg2(i)<<endl;
return 0;
}
Top
2 楼523lwwww(花梦飞絮)回复于 2003-11-04 12:19:10 得分 0
哈哈!!
Top




