所以我想制作一个基本的程序,我想制作一个名为数字的向量,并用1到100之间的10个随机数填充它。这是我到目前为止所拥有的;
{{1}}
它只输出一个数字,我希望输出10个随机数字。
答案 0 :(得分:2)
删除以下行
system("pause");
这will stop the continuation of your program。同时将return 0;
移至main
中的最后一个语句,否则只会在第一次迭代后停止。
此外,如果您只想生成10
个数字,请将其设置为循环停止条件
#include <iostream>
#include <vector>
int main()
{
std::vector<int> numbers;
const int in = 10; // Generate 10 random numbers
for (int i = 0; i < in; i++)
{
int n = rand() % 100 + 1;
numbers.push_back(n);
std::cout << "Number is: " << numbers[i] << std::endl;
}
return 0; // now you may return since the loop is complete
}
答案 1 :(得分:1)
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// Declare and define a vector holding ints
vector<int> numbers;
// Run loop 10 times, increase i by one every time it's finished
for (int i = 0; i < 10; i++)
{
// Generate a random number, get the last 3 digits, add one
int n = rand() % 100 + 1;
// Push that number back to the the vector
// Like adding the number to a list
numbers.push_back(n);
// Print the current number from inside the vector
// by using the counter/index i using an array-like syntax
cout << "Number is: " << numbers[i] << std::endl;
}
// This executes the command pause, after it has been terminated,
// stop the execution, with "success" by returning 0
system("pause");
return 0;
}
这很可能是您正在寻找的。 p>
但请注意,在这种情况下使用向量会产生一些开销。 我只是打印n而不是将数字推到矢量上,然后再检索它。但是,由于这可能只是为了更高级的矢量使用后准备,这应该没问题。
输出:
Number is: 84 Number is: 87 Number is: 78 Number is: 16 Number is: 94 Number is: 36 Number is: 87 Number is: 93 Number is: 50 Number is: 22
答案 2 :(得分:0)
在C和C ++中,随机使用种子来生成输出,实际上,如果你不为随机种子,随机将一次又一次地生成相同的数字。
您可以 - 并且应该使用时间戳
播种它#include"time.h"
srand(time(0));
此后,随机将生成“真实”随机数。
另外,你必须删除这两行:
system("pause");
return 0;
它在第一次迭代中打破了你的循环
答案 3 :(得分:0)
return 0
将导致它在第一次迭代后终止。 return
对C中的任何循环都没有意义,此语句用于终止函数。
如果代码正确缩进,您可能会立即看到它。缩进事项。
此外,你并没有告诉它循环10次,你告诉它循环in
次,而in
是rand() % 100 + 1
。
答案 4 :(得分:0)
您应该将system ("pause")
和return
放在循环之外,而不是放在
...
for () {...}
system ("pause");
return 0;
答案 5 :(得分:0)
以下想法对我有用......
//Initialize in ctor
std::vector<int> vecI;
for (int i=0; i<100; ++i) vecI.push_back(i);
time_t seed = std::chrono::system_clock::now().time_since_epoch().count();
std::shuffle(vecI.begin(), vecI.end(), std::default_random_engine(seed));
// in ctor, ok to display for debug, or disable for release
if(debugEnabled) {
for (int i=0; i<100; ++i)
std::cout << vecI[i] << " "; //
std::cout << "\n" << std::endl;
}
在应用程序中,您可以随时访问随机值。
// easy to use in application
for (int i=0; i<10; ++i)
testWith (vecI[i]); // ten selections from values in range 0..99
// easy to test with all in-range values, in shuffled order
for (int i=0; i<100; ++i)
testWith (vecI[i]); // all values in shuffled order
// test with all in-range values, in order
for (int i=0; i<100; ++i)
testWith (i); // all values in order