查找数组中最大和最小的数字

1337

我正在使用 C++ 程序将随机值存储在大小为 1000 的数组中。然后程序将要求用户输入“X”最大和“Y”最小数字。'X' 和 'Y' 是任何小于数组大小的整数值。然后程序将从数组中输出“X”最大和“Y”最小的数字。

假设数组有 1 2 4 7 9 14 3

X=2

Y = 3

输出将是

数组中最大的 2 个数字是 14 9

数组中最小的 3 数是 1 2 3

#include<iostream>
using namespace std;
int main()
{
   int size[1000];
   int x, y, max;
    max = 0;
    cout << "How many Largest numbers do you need ?\n";
    cin >> x;
    cout << "How many Smallest numbers do you need ?\n";
    cin >> y;
        for (int i = 0;i <= 999;i++)
        {
            size[i] = rand() % 100;
            cout << "No." << i << " = " << size[i] << endl;
        }
        for (int j = 1;j <= x;j++)
        {

            for (int i = 0;i <= 999;i++)
            {
                if (size[i] > max)
                    max = size[i];
            }
            cout << "LARGEST NUMBERS\n" << max << endl;
        }
}
保罗·麦肯齐

这是使用std::set的解决方案由于 astd::set已经对其条目进行了排序,plus 不存储重复项,因此解决方案变得非常简单:

#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <set>

int main()
{
   int size[1000];
   int x, y;
   std::cout << "How many Largest numbers do you need ?\n";
   std::cin >> x;
   std::cout << "How many Smallest numbers do you need ?\n";
   std::cin >> y;

   srand(0);  // seed random number

   // generate the numbers in the array
   std::generate(size, size + 1000, []{return rand() % 1000;});

   // create a std::set consisting of the numbers in the array
   std::set<int> intSet(size, size + 1000);

std::generate函数自动“循环”并用随机值填充数组。

std::set<int>构造简单地创建一个std::set阵列中使用的值。请注意,这将自动排序并删除重复条目。

一旦你有了这个,那么只需打印出 .csv 文件中的第一个x数字和最后一个y数字std::set

   // print the smallest numbers
   auto iter1 = intSet.begin();  // beginning of the set
   int i = 0;
   while (i < y)
   {
       std::cout << *iter1 << " ";
       ++iter1;
       ++i;
   }
   std::cout << "\n";

   // print the largest numbers
   auto iter2 = intSet.rbegin();  // end of the set.  We will loop backwards
   i = 0;
   while (i < x)
   {
       std::cout << *iter2 << " ";
       ++iter2;
       ++i;
   }
}

最大的数字从集合的末尾开始向后打印,这就是使用反向迭代器的原因。

注意:您必须在打印出值的循环中进行检查,以确保迭代器不会落在集合的开头和结尾。我把它留给你作为练习。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何显示用户输入数组中最大和最小的数字?

来自分类Dev

Java-使用数组查找最大和最小数字

来自分类Dev

Java-使用数组查找最大和最小数字

来自分类Dev

使用C中的指针查找数组中的最大和最小数字

来自分类Dev

根据用户输入(METHODS)查找最大和最小的数字

来自分类Dev

查找对象的最大和最小内部数组

来自分类Dev

使用函数查找数组中的最大和最小数

来自分类Dev

查找最大和最小日期

来自分类Dev

查找最大和最小日期

来自分类Dev

数组中最小的数字

来自分类Dev

从数组获取最大和最小日期

来自分类Dev

查找数组中最大的时间

来自分类Dev

查找数组的最大和最小值及其索引的程序(C编程)

来自分类Dev

查找最大和连续子数组

来自分类Dev

查找数组中元素的最大和(加捻)

来自分类Dev

查找最大和连续子数组

来自分类Dev

交换数组中最大和最后一个元素

来自分类Dev

查找将给出数组中最大数字的数字顺序

来自分类Dev

查找分区中最大的连续数字组

来自分类Dev

查找数组中最大负元素和最小正元素的索引

来自分类Dev

如何从python文件中查找最大和最小编号

来自分类Dev

在Java中查找最小,最大和中间值

来自分类Dev

查找来自其他属性的最大和最小日期

来自分类Dev

查找序列中的2个最大和最小整数

来自分类Dev

查找列表 Swi-prolog 的最大和最小元素的总和

来自分类Dev

查找数组中最小的正整数

来自分类Dev

JavaScript代码包含数字Z的最大和最小限制

来自分类Dev

C ++数组中最大的数字。正面及负面

来自分类Dev

查找具有最大和数的数字(JavaScript)