Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dasha180893
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 39
#1

В массиве М(45) найти максимальный - C++

01.07.2012, 14:33. Просмотров 297. Ответов 8
Метки нет (Все метки)

В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2012, 14:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В массиве М(45) найти максимальный (C++):

В двухмерном массиве найти максимальный и минимальный элементы и их координаты в массиве - C++
"В двухмерном массиве, размещенном в куче и заполненном случайными вещественными значениями, определить максимальных и минимальный элемент...

Найти в массиве максимальный и минимальный элементы в массиве и их количество - C++
Помогите, пожалуйста, начал осваивать c++...Не могу справиться с такой задачей: Написать программу, которая вводит с клавиатуры массив...

Найти в массиве минимальный и максимальный элементы. Вывести последовательность значений из этого диапазона, не встречающихся в данном массиве - C++
Найти в массиве минимальный и максимальный элементы. Вывести последовательность значений из этого диапазона, не встречающихся в данном...

Найти максимальный элемент в массиве - C++
Добрый день. Нужно найти максимальный элемент в массиве. При компиляции выдаёт 2 ошибки 1>d:\disk...

Найти максимальный элемент в массиве - C++
Как найти максимальный элемент в массиве?

Найти максимальный элемент в массиве - C++
Все числа в массиве, равные максимальному числу, переставить после первого максимального. т.е 1.найти максимальный элемент в массиве ...

8
Петррр
5972 / 3409 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
01.07.2012, 14:47 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <ctime>
#include <limits>
 
int main()
{
    enum { size = 10 };
    int array[size];
    int max = INT_MIN;
    int pos = -1;
    int zerocount = 0;
    srand(time(NULL));
    // Заполнение и вывод
    for(int i = 0; i < size; i++)
        std::cout << (array[i] = rand() % 21 - 10) << ' ';
    for(int i = 0; i < size; i++)
        if (array[i] < 0 && array[i] > max)
            max = array[pos = i];
    std::cout << std::endl << "Max: " << max << ", pos: " << pos << std::endl;
    // Подсчет нулей после после максимального
    for(int i = pos; i < size; i++)
        if (array[i] == 0)
            zerocount++;
    std::cout << "Zero count: " << zerocount << std::endl;
 
    system("pause");
    return 0;
}
0
Andrey.K
343 / 264 / 15
Регистрация: 14.11.2010
Сообщений: 482
01.07.2012, 14:48 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <conio.h>
#include <ctime>
#include <cstdlib>
using namespace std;
const int n=45;
int main()
{
    setlocale(0,"Rus");
    int mas[45],min=-10,max=10,Max,pos,zero=0;
    srand((unsigned)time(NULL));
    cout<<"Исходный массив: "<<endl;
    for(int i=0;i<n;i++)
    {
        mas[i]=rand() % (max - min + 1) + min;
        cout<<mas[i]<<" ";
        if(mas[i]<0) { Max=mas[i];pos=i; }
    }
    cout<<endl;
    for(int i=0;i<n;i++)
    {
        if(mas[i]>Max && mas[i]<0) { Max=mas[i]; pos=i; }
    }
    cout<<"Максимальный элемент: "<<Max<<endl;
    for(int i=pos;i<n;i++)
    {
        if(mas[i]==0) zero++;
    }
    cout<<"Нулевый элементов: "<<zero<<endl;
    getch();
    return 0;
}
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
01.07.2012, 15:46 #4
Не претендую на то, что мой код будет самым полезным для ТС, просто хотел попробовать с <random> поработать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <ctime>
#include <array>
#include <random>
#include <algorithm>
 
int main()
{
    const size_t SIZE = 45;
    const int MIN_VAL = -100, MAX_VAL = 100;
    std::array<unsigned, SIZE> arr;
 
    std::mt19937 eng; 
    eng.seed(time(NULL));
    std::uniform_int_distribution<int> dist(MIN_VAL, MAX_VAL);
    
    std::generate(arr.begin(), arr.end(), [&]() {return dist(eng);});
 
    std::array<unsigned, SIZE>::iterator it = std::max_element(arr.begin(), arr.end());
    std::cout << "Max = " << static_cast<int>(*it) << std::endl;
 
    int zeroCount = std::count_if(it, arr.end(), std::bind1st(std::equal_to<unsigned>(),0));
    std::cout << "Number of nulls after max element = " << zeroCount << std::endl;
   
    return 0;
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
01.07.2012, 15:58 #5
Поиск отменили?
В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
#include <iterator>
#include <random>
#include <cstddef>
 
int main()
{
    const std::size_t N = 45;
    int arr[N];
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> uid(-20, 20);
    std::generate(arr, arr + N, [&uid, &gen] {return uid(gen); } );
    std::copy(arr, arr + N, std::ostream_iterator<int> (std::cout, " ") );
    int *pint = std::max_element(arr, arr + N, [](const int x, const int y) {return x < y && y < 0; } );
    std::cout<< std::endl<< "Max among negative: "<< *pint<< std::endl
             << "Zeros after: "<< std::count(pint, &arr[N], 0);
    return 0;
}
http://liveworkspace.org/code/e709ae...0330a21fc63806
0
Kastaneda
01.07.2012, 16:03
  #6

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
std::count_if(it, arr.end(), std::bind1st(std::equal_to<unsigned>(),0));
Цитата Сообщение от MrGluck Посмотреть сообщение
std::count(pint, &arr[N], 0);
чет я опять сам себя перехитрил

0
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
01.07.2012, 16:04 #7
Kastaneda, не хватает #include <functional>. Да и count_if спокойно на count меняется.

Не по теме:

опоздал)

1
xADMIRALx
01.07.2012, 16:08
  #8

Не по теме:

Препадователь иностранец ? или переводил задания с помощью translete.google.ru ?

Не знаю как вы догадались что надо,лично я вообще ничего не понял

0
Kastaneda
01.07.2012, 16:09     В массиве М(45) найти максимальный
  #9

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Kastaneda, не хватает #include <functional>
ага точно, а MSVS, собака, так компилирует)

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2012, 16:09
Привет! Вот еще темы с ответами:

Найти в массиве максимальный элемент - C++
Начните с программы, которая позволяет пользователю вводить целые числа, а затем сохранять их в массива типа int. Напишите функцию...

В массиве найти максимальный элемент - C++
В двумерном массиве найти элемент максимальный по строке и минимальный по столбцу. Если таких нет - вывести соответствующее сообщение на...

Найти максимальный элемент в массиве - C++
Найти максимальный элемент в массиве

Найти пятый максимальный элемент в массиве - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;math.h&quot; using namespace std; const int N = 7; int max5 (int *, int); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
01.07.2012, 16:09
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.