Нахождение наименьшего числа в массиве - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь создать случайные числа в массиве, а затем найти наименьшее число в этом массиве. Как мне изменить мой код, чтобы он работал?

using namespace std; 

int one, two, three, four; 

int main(){

  srand (time(NULL));

  one = rand() % 6 + 1;

  two = rand() % 6 + 1;

  three = rand() % 6 + 1;

  four = rand() % 6 + 1;

  int myelement [4] = {four, three, two, one};

  cout << myelement, myelement[+4] << endl;

  cout << min_element(myelement, myelement[+4]);

  return 0; 

}

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Вы уже нашли наименьшее число. Вы просто не принимаете во внимание, что min_element() принимает итераторы в качестве входных данных и возвращает итератор в качестве выходных данных. Вы не передаете действительный итератор во втором параметре, и вам нужно разыменовать выходной итератор, чтобы получить действительное число.

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
using namespace std;

int main(){
    srand (time(NULL));
    int one = rand() % 6 + 1;
    int two = rand() % 6 + 1;
    int three = rand() % 6 + 1;
    int four = rand() % 6 + 1;
    int myelement [4] = {four, three, two, one};
    cout << *min_element(myelement, myelement+4);
    return 0;
}
0 голосов
/ 08 сентября 2018

Функция std :: min_element () не принимает разыменованный указатель в качестве аргумента, который вы делаете с myelement[+4]. Передайте итераторы и вместо них верните итератор:

auto it = std::min_element(std::begin(myelement), std::end(myelement));
std::cout << *it;

Убедитесь, что вы включили заголовок <algorithm>.

Также это:

 cout << myelement, myelement[+4] << endl;

неправильно по ряду причин.

Это:

cout << myelement;

не распечатывает первый элемент. Он печатает значение указателя, когда ваш массив преобразуется в указатель при использовании в функции.

Это:

 cout << myelement[+4];

не печатает значение четвертого элемента, но вызывает неопределенное поведение, так как нет такого элемента, как myelement[+4], только myelement[3].

...