C++ 如何在两个数组中存储生成的从1到500的数字
我已经生成了从1到500的随机数,并希望存储在2个数组中,即Array1存储1到250个元素,Array2存储251到500个元素。两个阵列的大小都是250。我成功地存储在array1中,但未存储在array2中 我试过了,但循环是无限循环的C++ 如何在两个数组中存储生成的从1到500的数字,c++,arrays,loops,for-loop,initializer-list,C++,Arrays,Loops,For Loop,Initializer List,我已经生成了从1到500的随机数,并希望存储在2个数组中,即Array1存储1到250个元素,Array2存储251到500个元素。两个阵列的大小都是250。我成功地存储在array1中,但未存储在array2中 我试过了,但循环是无限循环的 #define MAX 250 int a1[MAX], a2[MAX]; srand((int)time(0)); for (i = 0; i < 500; i++) { int c = (rand() % 500) + 1; i
#define MAX 250
int a1[MAX], a2[MAX];
srand((int)time(0));
for (i = 0; i < 500; i++) {
int c = (rand() % 500) + 1;
if (i >= 0 && i < 250) {
cout << "Array 1 ";
for (j = 0; j < 250; j++) {
a1[j] = c;
cout << a1[j] << " ";
}
}
if (i >= 250 && i < 500) {
cout << endl
<< "Array 2 ";
for (int k = 0; k < 250; k++) {
a2[k] = c;
cout << a2[k] << " ";
}
}
它不是无限循环;只是循环太多了 那是因为你把一个循环放在一个循环中,老兄
你根本不需要那些内部for循环。它不是无限循环;只是循环太多了 那是因为你把一个循环放在一个循环中,老兄 您根本不需要这些内部for循环。给您
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
const size_t MAX = 250;
int a1[MAX], a2[MAX];
std::srand( ( unsigned int )std::time( nullptr ) );
for ( auto a : { a1, a2 } )
{
for ( size_t i = 0; i < MAX; i++ ) a[i] = std::rand() % ( 2 * MAX ) + 1;
}
}
对于你的代码,然后是内部循环
for (j = 0; j < 250; j++) {
及
执行500次,因为它们包含在外部循环中
for (i = 0; i < 500; i++)
给你
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
const size_t MAX = 250;
int a1[MAX], a2[MAX];
std::srand( ( unsigned int )std::time( nullptr ) );
for ( auto a : { a1, a2 } )
{
for ( size_t i = 0; i < MAX; i++ ) a[i] = std::rand() % ( 2 * MAX ) + 1;
}
}
对于你的代码,然后是内部循环
for (j = 0; j < 250; j++) {
及
执行500次,因为它们包含在外部循环中
for (i = 0; i < 500; i++)
马克斯是什么?出示你的。代码对我有用:@LightnessRacesinOrbit MAX是数组的大小。我已定义最大值的大小为250。我无法重现您的错误,也无法看到此代码如何正确填充a1。您应该检查:和。最大值是多少?出示你的。代码对我有用:@LightnessRacesinOrbit MAX是数组的大小。我已经定义了最大值为250。我无法重现您的错误,也看不出此代码如何正确填充a1。您应该检查:和。鱼的分发很好!鱼的分发很好!