系统提示我
创建一个长度为11的数组,并使用for循环创建1500个介于1到10之间的随机整数,从而增加循环内的数组位置以计算随机显示的每个数字1-10的实例
显然,我需要的组件是:
int array[11] = {0};
int i;
i = rand() % 10 + 1;
arr[i]++;
我尝试过这样的事情:
for (int i = rand() % 10 + 1; i < 11; ;)
{
array[i]++;
}
运行它时没有任何输出。如果有人可以帮忙,我有点受阻。非常感谢你!
答案 0 :(得分:0)
我想知道你是否在描述这个?
#include <iostream>
int main() {
int array[11] = {0};
for (int i = 0; i < 1500; ++i) {
int j = rand() % 10 + 1;
array[j]++;
}
for (int i = 1; i < 11; ++i) {
std::cout << i << '\t' << array[i] << std::endl;
}
return 0;
}
答案 1 :(得分:0)
这应该做您想要的:
//create array
int array[11];
//fill array with zeros
for(int i = 0; i <= 10; ++i) {
array[i] = 0;
}
//count random numbers
for(int i = 0; i < 1500; ++i) {
int randomNumber = rand() % 10 + 1;
++array[randomNumber];
}
//print result
for(int i = 1; i <= 10; ++i) {
printf("Number %d was generated %d times", i, array[i]);
}
这是纯c方式,您当然也可以使用std::cout
进行打印。
顺便说一句:这样浪费了索引0,但这就是您描述它的方式。
答案 2 :(得分:0)
使用代码并对代码进行最少的更改,并使用此处提供的组件是单循环实现。
int array[11] = {0}; //COMPONENT 1
int k=0;
int i; //COMPONENT 2
for(int k=0; k < 1500;k++)
{
int i = rand() % 10 + 1; //COMPONENT 3
array[i]++; //COMPONENT 4
}
//TO CHECK ANSWER
for(i=0;i<11;i++)
cout<<array[i]<<endl;
我也同意用户jjj的看法,即索引0被浪费了