Найти максимальное значение массива

310
21 января 2019, 16:20

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

Можно ли составить код по такой логике?

    #include<math.h>
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<cstdlib>
using namespace std;
int main()
{   int mass[20];
    int max;
    int i;
    const int n=20;  
    double result = 1.0;
    int massiv[n],Xmax,Nmax,u,x;
    for( int i=0; i<n; i++)
    {
     massiv[i] =u=(std::rand() % 2000)-1000;
     std::cout << "{";
        std::cout << massiv[i] << " ";
        std::cout <<"} ";
}
 for(int i = 0; i < 20; i++){
        mass[i] = i;
    }
  max = mass[0];
 for(int i = 1; i < 20; i++){
        if(mass[i] > max){
            max = mass[i];
        }
    }
 std::cout <<"max value: "<< massiv[Nmax]<< " at index " <<Nmax;  

{
std::cin.ignore();
return 0;
}
getchar();
}
Answer 1

Охохонюшки, придётся полный рабочий код приводить.

Массив заполняется, выводится - заметьте, что скобки нужны до и после цикла, но не внутри.

Затем приводится первый вариант - он только находит сам максимальный элемент, но не его позицию.

Второй вариант находит и максимум, и его индекс в массиве

#include <iostream>
using namespace std;
int main() {
    const int n=20;  
    int massiv[n], Xmax, Nmax, u;
    std::cout << "{";
    for( int i=0; i<n; i++)
    {
     massiv[i] =u=(std::rand() % 2000)-1000;
        std::cout << massiv[i] << " ";
    }
    std::cout <<"}\n ";
    //----------------------------
    Xmax=massiv[0];
    for (int i=1; i<n;i++)
       Xmax = massiv[i]> Xmax?massiv[i]: Xmax;
    std::cout <<"Просто max: "<< Xmax << "\n" ;      
    //----------------------------
    Xmax=massiv[0];
    Nmax = 0;
    for (int i=1; i<n;i++)
       if (massiv[i] > Xmax) //или (massiv[i] > massiv[Nmax])
          {
            Xmax = massiv[i];
            Nmax = i;
          }
    std::cout <<"max value: "<< massiv[Nmax]<< " at index " << Nmax;     
    return 0;
}

Вот что выводится:

{383 -114 -223 -85 793 -665 386 -508 -351 421 -638 -973 -310
 -941 763 926 -460 426 172 736 }
 Просто max: 926
max value: 926 at index 15
Answer 2

для нахождения максимального int значения,создаем массив

    int mass[10];
    int max;

заполняем массив

    for(int i = 0; i < 10; i++){
        mass[i] = i;
    }

указываем что max будет равен первому элементу

    max = mass[0];

ищем максимальное значение в массиве

    for(int i = 0; i < 10; i++){
        if(mass[i] > max){
            max = mass[i];
        }
    }
Answer 3

Я бы предложил два раза уменьшить цикл :

int max_from_array(const int* m, const int size)
{
    int p = (size % 2) ? size / 2 + 1 : size / 2,
            max = *m;
    for (int i = 1 ; p < size; ++p, ++i)
    {
        if (m[p] > max)
            max = (m[p] > m[i]) ? m[p] : m[i];
        else if (max < m[i])
            max = m[i];             
    }
    return max;
}
int main()
{  
    const int n = 20;
    int massiv[n] ;
    for (int i = 0; i < n; ++i) {
        massiv[i] = rand()%2000 - 1000; // функция не в пространстве std
        std::cout << massiv[i] << ' ';
    }
    std::cout << std::endl << max_from_array(massiv, n);
    return 0;
}
Answer 4

ну если совсем писать лень, то можно и так:

#include <algorithm>
#include <iostream>
using namespace std;
int main(){
    int mass[]{3,12,4,1,0};
    int maxim=*max_element(begin(mass), end(mass));
    cout<<maxim<<endl;
    return 0;
}
READ ALSO
libcurl проблема с прокси

libcurl проблема с прокси

В файле содержатся несколько прокси ip:portНе могу по циклу проверить каждый прокси на доступность к сайту

180
Compareble Comparator java?

Compareble Comparator java?

Можно ли в методе compareTo сравнивать два поля? Попыталась сравнить то сортируетДля чего тогда интерфейс comparator???

178
java - Поднять регистр букв у первого символа строки

java - Поднять регистр букв у первого символа строки

Собственно, суть в вопросеНапример, есть строка

180
Проверка данных на наличие в полях только цифр и знака минус

Проверка данных на наличие в полях только цифр и знака минус

Мне необходимо проверить правильность заполнения текстовых полей в созданном JFrameВ этих полях должны быть только цифры и знак минус

209