C++ 生成的数字代码以及如何将最高数字显示为最低数字

C++ 生成的数字代码以及如何将最高数字显示为最低数字,c++,arrays,vector,C++,Arrays,Vector,需要一个从1到6生成10个数字的程序。代码必须存储在整数数组中,并找出代码中生成和显示的数字的最大值和最小值,以及从1-6生成的所有数字的总和。所有三个函数都必须在main中返回 好的!我现在醒了,我可以看到我可以编辑我原来的帖子,所以我的代码差不多完成了 #include<iostream> #include<cstdlib> #include<ctime> using namespace std; int main() { int highest = I

需要一个从1到6生成10个数字的程序。代码必须存储在整数数组中,并找出代码中生成和显示的数字的最大值和最小值,以及从1-6生成的所有数字的总和。所有三个函数都必须在main中返回

好的!我现在醒了,我可以看到我可以编辑我原来的帖子,所以我的代码差不多完成了

#include<iostream>
#include<cstdlib>
#include<ctime>

using namespace std;
int main()
{
int highest = INT_MAX;
int lowest = INT_MIN;
int i = 0;
int sum = 0;

{
 {
    srand(time(0));
    for (int i = 0; i < 10; i++)
        cout << rand() % 6 + 1 << endl;

 }
int myArray[10]{ 1,2,3,4,5,6 };  

for (int i = 0; i < 10; i++)

    myArray[i] = rand() % 6 + 1;  

    if (myArray[i] < lowest)
        lowest = myArray[i];

    if (myArray[i] > highest)
        highest = myArray[i];

    {
        for (int i = 0; i < 10; i++)

        sum = sum + rand() % 6 + 1;

        cout << "The sum of all 10 numbers is " << sum << endl;
        cout << "The largest value is = " << INT_MAX << endl;
        cout << "The smallest value is = " << INT_MIN << endl;

    }
    return 1;
    }
  }
#包括
#包括
#包括
使用名称空间std;
int main()
{
int最高=int_最大值;
最低整数=最小整数;
int i=0;
整数和=0;
{
{
srand(时间(0));
对于(int i=0;i<10;i++)

首先,要小心代码的缩进

接下来,您需要通过声明一个数组来跟踪每个生成的数字

srand(time(0));

//You have to include the limits library to use INT_MIN and INT_MAX
int highest = INT_MIN;
int lowest = INT_MAX;

int myArray[10];   //Array to hold 10 random numbers

for (int i = 0; i < 10; i ++)
{
    myArr[i] = rand() % 6 + 1;  // Generates a random number and stores it 

    if (myArr[i] < lowest)
         lowest = myArr[i];
    else if (myArr[i] > highest)
         highest = myArr[i];
}
srand(时间(0));
//必须包含限制库才能使用INT_MIN和INT_MAX
最高整数=最小整数;
最低整数=最大整数;
int myArray[10];//用于容纳10个随机数的数组
对于(int i=0;i<10;i++)
{
myArr[i]=rand()%6+1;//生成一个随机数并存储它
if(myArr[i]<最低值)
最低=myArr[i];
else if(myArr[i]>最高值)
最高=myArr[i];
}
现在,最高的变量应该包含生成的最高数字,最低的变量应该包含生成的最低数字


下次请在提问之前做更多的研究,并且更具体。

我会避免尝试使用
rand()
srand()
有一种更安全、更高效、更可靠的方法来生成随机数。我将向您展示如何使用标准库中定义的许多随机数生成器中的一个。我将使用
随机设备
来为
引擎
生成器
播种,我将使用的生成器是标准的d
mersenne_twister_engine
显示为
mt19937
。我将使用
uniform_int_distribution
作为分布类型。可以使用许多其他类型的发电机,其他类型的分布和一些其他方式来为这些引擎播种;除了
随机设备之外,还有另一种播种方式通过使用
std::chrono
时间或稳定时钟系统,您可以找到有关这些伪随机数生成器和分布的更多信息:要使用这些,您需要包含头文件

我将使用
std::vector
来包含生成的数字,为此,您需要包含
,尽管如果需要使用基本默认数组,您可以轻松地将向量替换为整数数组。我选择使用
std::vector
,因为标准中已经存在算法可用于执行所需或所需操作的库,例如查找最小值和最大值,并通过添加该序列或值范围中的所有元素。要使用这些算法,您需要包括

这是我在main函数中严格编写的一个简短程序,它显示了您需要的所有功能。如果您需要在main中调用的单独函数中使用这些功能,那么我将其作为一项任务留给您完成

#include <iostream>   // Output
#include <vector>     // Container
#include <algorithm>  // Algorithms
#include <numeric>    // Other Needed Functions

int main() {

    std::random_device rd;  // Will be used to obtain a seed for the random number engine
    std::mt19937 gen( rd() ); // Standard mersenne_twister_engine seeded with rd()
    std::uniform_int_distribution<> dis( 1, 6 ); // Distribution Of Random Numbers in range of [1,6]

    // Vector Or Array To Store Numbers
    std::vector<int> numbers;

    // Populate Vector
    int n = 0;
    for ( ; n < 10; ++n){
        numbers.push_back( dis( gen ) );
    }

    // Display Random Values
    n = 0;
    for ( ; n < 10; ++n ) {
        std::cout << numbers[n] << ", ";
    }
    std::cout << std::endl;

    // Min & Max
    std::vector<int>::iterator resultMin;
    std::vector<int>::iterator resultMax;

    resultMin = std::min_element(std::begin(numbers), std::end(numbers));
    resultMax = std::max_element(std::begin(numbers), std::end(numbers));

    // Sum
    int sum = std::accumulate(numbers.begin(), numbers.end(), 0);

    // Display Results
    std::cout << "min value is: " << (*resultMin) << std::endl;
    std::cout << "max value is: " << (*resultMax) << std::endl;
    std::cout << "Sum of array is: " << sum << std::endl;

    return 0;
}
#包含//输出
#包含//容器
#包含//算法
#包括//其他需要的功能
int main(){
std::random_device rd;//将用于获取随机数引擎的种子
std::mt19937 gen(rd());//标准mersenne_捻线机_引擎,带rd()种子)
std::均匀分布dis(1,6);//在[1,6]范围内随机数的分布
//用于存储数字的向量或数组
std::向量数;
//填充向量
int n=0;
对于(;n<10;++n){
数字。推回(dis(gen));
}
//显示随机值
n=0;
对于(;n<10;++n){

std::cout-SO不是一个编码服务。因此,你可以要求提示“如何做?”或者更好的bug修复,但不是像你做的那样:请完成此项,以便我可以学习如何做。(或者我误解了你的意思吗?)但是,你必须添加存储中间(或最终)的局部变量结果用于输出之前。因此,它们可以在输出之前或之后进行处理。ofc!我的意思是寻求一个如何进行或应该如何进行的提示。我现在了解了存储结果用于输出之前的局部变量。因此,不要担心否决票,因为有两个答案可以解释任何遗漏方面(甚至更多)。我认为这是成功的。如果你能接受对你帮助最大的答案,那就太好了。
std::minmax_element
可以做
std::minmax_element
std::max_element
,比较少一点。@Jarod42肯定;但我向OP展示的是,已经存在满足他们需求的算法。我不同意他们首先需要学习语言语法和概念,然后是库,然后再担心如何改进代码以提高效率。泰我曾考虑过这样做,但我选择了一种更简单的方法。很高兴有不同的选择,我看到了如何进行试验更多关注你的代码again@coto你认为更简单的方法实际上有点难,因为你永远不会用
rand()
srand()得到一个真正的随机数
它们的输出在循环中的分布并不完全是随机的……事实上,它们对于每个独立的种子值都是可预测的。但是,使用标准库的方法,您将使用相同的种子随机_设备或chrono::clock获得随机生成的数字。向量很容易包含并具有快速索引。它们是线性的搜索和方法已找到最小值、最大值和