C++ rand()随机生成整数。循环调用函数生成数据,如其用注释一位置输出,可以获得想要的随机数据。但是如果启用注释2位置输出,数组a[10]中的数据却不改变
C++ rand()随机生成整数。循环调用函数生成数据,如果用注释一位置输出,可以获得想要的随机数据。但是如果启用注释2位置输出,数组a[10]中的数据却不改变
C++ rand()随机生成整数。循环调用函数生成数据,如果用注释一位置输出,可以获得想要的随机数据。但是如果启用注释2位置输出,数组a[10]中的数据却不发生变化,和第一次相同。通过调试,发现在循环调用构造函数的时候a[]中数据是改变的,但是调用结束后,a[]立马变成原来的数据,有木有人来解惑。另外,srand(time(0))应该放在哪里啊。
------解决方案--------------------
帮你改一下
C++ rand()随机生成整数。循环调用函数生成数据,如果用注释一位置输出,可以获得想要的随机数据。但是如果启用注释2位置输出,数组a[10]中的数据却不发生变化,和第一次相同。通过调试,发现在循环调用构造函数的时候a[]中数据是改变的,但是调用结束后,a[]立马变成原来的数据,有木有人来解惑。另外,srand(time(0))应该放在哪里啊。
#include<iostream>
#include<cstdlib>
#include<time.h>
using namespace std;
class AAA
{
int a[10];
public:
AAA()
{
for(int i=0;i<10;i++)
{
a[i]=1000*rand()/(RAND_MAX+1);
//cout<<a[i]<<'\t'; 注释1
}
cout<<endl;
}
void times(){
//srand(time(0));
for(int i=0;i<10;i++)
{
AAA();
//print(); 注释2
}
}
void print()
{
for(int i=0;i<10;i++)
cout<<a[i]<<'\t';
}
};
int main()
{
AAA a;
a.times();
system("pause");
return 0;
}
C++
类
------解决方案--------------------
帮你改一下
#include<iostream>
#include<cstdlib>
#include<time.h>
using namespace std;
class AAA
{
int a[10];
public:
AAA()
{
srand(time(0));
times();
}
void times()
{
for(int i=0;i<10;i++)
{
a[i]=1000*rand()/(RAND_MAX+1);
}
}
void print()
{
for(int i=0;i<10;i++)
cout<<a[i]<<'\t';
}
};
int main()
{
AAA a;
a.print();
a.times();
a.print();
system("pause");
return 0;
}