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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
badman
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 49
#1

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

18.05.2012, 17:17. Просмотров 1129. Ответов 23
Метки нет (Все метки)

Дан массив из n целых чисел. Найти все максимальные элементы этого массива (напечатать их номера). Затем преобразовать исходный массив по правилу: первый максимальный элемент увеличить на 1, второй — на 2 и т.д.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2012, 17:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти все максимальные элементы (C++):

в одномерном массиве А состоящем из N элементов найти максимальные элементы и все элементы равные максимальному заменить на 0. - C++
в одномерном массиве А состоящем из N элементов найти максимальные элементы и все элементы равные максимальному заменить на 0.

В очередь Och2 поместить все максимальные элементы из Och1 и найти их количество - C++
Помогите написать программу. Описать структуры данных, процедуры и функции, необходимые для работы с очередями. Используя генератор...

Из целочисленного массива Х все четные элементы записать в массив Y. Удалить в массивах максимальные элементы - C++
Из целочисленного массива Х(N) все четные элементы записать в массив Y(k). Удалить в массивах максимальные элементы. В программе написать...

Массив: Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные элементы массива В. - C++
Даны массивы целых чисел A и B. Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные...

Заменить все максимальные элементы нулями - C++
в С++ заменить все максимальные элементы нулями

Удалить из массива все максимальные элементы - C++
Всем здравствуйте!!! Помогите плиз заочнику неуспевающему с контрольными из-за работы. Учусь на первом курсе. Я конечно понимаю, что позорю...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
18.05.2012, 17:35 #2
Что значит " все максимальные" ?
Я так понимаю ,если массив дан такой: 5,14,0,-4,14,8,-3 , то 14 это и есть максмимальные элементы?
1
badman
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 49
18.05.2012, 17:40  [ТС] #3
наверно
мы проходим одно,препод дает нам решать другое,я понятия не имею как это решать((
0
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
18.05.2012, 17:47 #4
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
#include <iostream>
#include <conio.h>
using namespace std;
const int n=7;
int main()
{
    int mas[n],i=0;
    do
    {
        cout<<"Vvedite "<<i<<" element: ";cin>>mas[i];
        i++;
        if(i==n) { cout<<"massiv zapolnen"<<endl<<endl; break; }
    }
    while(i<n);
    // находим макс. элемент
    int max=mas[0];
    for(i=0;i<n;i++)
        if(mas[i]>max) max=mas[i];
    //выводим позиции
    cout<<"Nomera poziciy: "<<endl;
    int count=0;// переменная для того ,чтобы увеличивать элементы массива
    for(i=0;i<n;i++)
        if(mas[i]==max) { cout<<i<<" "; count++; mas[i]+=count; }// выводим позиции и сразу увечиваем элемент
    cout<<endl;
    cout<<"New massiv: "<<endl;
    for(i=0;i<n;i++)
        cout<<mas[i]<<" ";
    cout<<endl;
    getch();
    return 0;
}
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
18.05.2012, 17:50 #5
Цитата Сообщение от badman Посмотреть сообщение
мы проходим одно,препод дает нам решать другое,я понятия не имею как это решать((
Вопрос не в том как решать, вопрос в том как понимать условие.
Если так
Цитата Сообщение от Andrey.K Посмотреть сообщение
Я так понимаю ,если массив дан такой: 5,14,0,-4,14,8,-3 , то 14 это и есть максмимальные элементы?
то
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
33
34
#include <iostream>
#include <iomanip>
#include <vector>
#include <stdlib.h>
using namespace std;
 
int main()
{
    enum {size=10};
    int ar[size];
 
    cout<<"Array is:\n";
    for(int i=0;i<size;i++)
     cout<<setw(2)<<(ar[i]=rand()%20)<<"  ";
    cout<<endl;
 
    int maxElem=ar[0];
 
    //поиск max
    for(int i=1;i<size;i++)
     maxElem=max(maxElem,ar[i]);
 
 
    //вывод позиций max элементов и заодно их инкрементирование
    cout<<"Pos of max is:\n";
    int inc=1;
    for(int i=0;i<size;i++)
     if(ar[i]==maxElem)
      cout<<i<<'\t',ar[i]+=inc++;
 
    cout<<"\nNow array is:\n";
    for(int i=0;i<size;i++)
     cout<<setw(2)<<ar[i]<<"  ";
}
1
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
24.05.2012, 18:06 #6
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
#include <iostream>
 
using namespace std;
 
int main() {
    int n;
    cin >> n;
    int* a = new int[n];
    int i;
    for (i = 0; i < n; i++)
        cin >> a[i];
    int* ind = new int[n];
    int max = a[0];
    int maxInd = 1;
    ind[0] = 0;
    for (i = 1; i < n; i++)
        if (a[i] > max) {
            max = a[ind[0] = i];
            maxInd = 1;
        } else if (a[i] == max)
            ind[maxInd++] = i;
    max = 1;
    for (i = 0; i < maxInd; i++) {
        cout << ind[i] << endl;
        a[ind[i]] += max++;
    }
    for (i = 0; i < n; i++)
        cout << a[i] << endl;
    delete[ ] a;
    delete[ ] ind;
}
0
Demy85
58 / 58 / 5
Регистрация: 28.05.2012
Сообщений: 220
Завершенные тесты: 1
08.06.2012, 11:54 #7
Цитата Сообщение от badman Посмотреть сообщение
Дан массив из n целых чисел. Найти все максимальные элементы этого массивы (напечатать их номера). Затем преобразовать исходный массив по правилу: первый максимальный элемент увеличить на 1, второй — на 2 и т.д.
Извини, а что значит "все максимальные элементы"? Разве максимальный элемент не один в массиве будет?
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
08.06.2012, 12:00 #8
Demy85, есть массив 3 5 4 3 2 5 3 5 1

В нем максимальный элемент 5, таких пятерок 3, и того 3 максимальных элемента! Вот и надо найти их номера
0
Serejke_qq
150 / 108 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
08.06.2012, 12:18 #9
Как-то так:
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
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
 
using namespace std;
 
int main()
{
    int * array;
    int n;
 
    cout << "n = ";
    cin >> n;
 
    array = new int[n];
 
    cout << "\nМассив : \n";
 
    for(int i=0; i<n; i++)
        cin >> array[i];
 
    for(int i=0; i<n; i++)
        cout << " " << array[i];
 
    int max=array[0];
 
    for(int i=1; i<n; i++)
        if(max < array[i])  max = array[i];
 
    cout << "\nИндексы максимальных элементов : ";    // Индексация с нуля..
 
    for(int i=0; i<n; i++)
        if(array[i]==max)   cout << i << " ";
 
    int k=1;
 
    for(int i=0; i<n; i++)
        if(array[i]==max)   array[i]+=k++;
 
    cout << "\n Преобразованый массив: \n";
    for(int i=0; i<n; i++)
        cout << " " << array[i];
 
    delete[] array;
    return 0;
}
1
badman
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 49
08.06.2012, 12:25  [ТС] #10
Цитата Сообщение от Serejke_qq Посмотреть сообщение
array = new int[n]
для чего здесь нужен array?
просто мы еще никогда его не использовали
0
Serejke_qq
150 / 108 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
08.06.2012, 12:31 #11
Цитата Сообщение от badman Посмотреть сообщение
для чего здесь нужен array?
array это имя массива.. можете использовать любое другое на свой вкус (например, mas, a, lol и т.д)
Если вы про строчку с new int [n] - это динамическое выделение памяти под массив
1
badman
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 49
08.06.2012, 12:49  [ТС] #12
Цитата Сообщение от Serejke_qq Посмотреть сообщение
array это имя массива.. можете использовать любое другое на свой вкус (например, mas, a, lol и т.д)
Если вы про строчку с new int [n] - это динамическое выделение памяти под массив
lol)))
спасибо
0
badman
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 49
12.06.2012, 20:26  [ТС] #13
Компилятор выдает ошибку
Дан массив из n целых чисел. Найти все максимальные элементы этого массивы (напечатать их номера). Затем преобразовать исходный массив по правилу: первый максимальный элемент увеличить на 1, второй — на 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
using namespace std;
 
void vvod(int a[], int n)
{
for (int i = 0; i < n; i++);
{
cout << "a[" <<i+1«"] = ";
cin >> a[i];
}
}
void print (int a[], int n)
{
cout << "\n";
for (int i = 0; i < n; i++)
cout << a[i] << " ";
}
void max(int a[], int n)
{
int max = a[0];
for (int i = 1; i < n; i++)
if (a[i] > max) max = a[i];
cout << "\nНомера максимальных элементов: ";
for (int i = 0; i < n; i++)
if (a[i] == max) cout << i+1 << " ";
}
 
void preobraz(int a[], int n)
{
int k = 1;
for (int i = 0; i < n; i++)
{ a[i]+=k; k++; }
}
int main()
{
int n = 0;
cout << "Количество элементов массива = ";
cin >> n;
int * mas;
mas = new int [n];
vvod(mas, n);
max(mas, n);
preobraz(mas, n);
print(mas, n);
return 0;
}
0
Kostyanych77
172 / 11 / 2
Регистрация: 21.12.2010
Сообщений: 66
12.06.2012, 20:31 #14
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
using namespace std;
 
void vvod(int a[], int n)
{
    int i;
    for (i = 0; i < n; i++);
    {
        cout << "a[" <<i+1<<"] = ";
        cin >> a[i];
    }
}
void print (int a[], int n)
{
    cout << "\n";
    for (int i = 0; i < n; i++)
        cout << a[i] << " ";
}
void max(int a[], int n)
{
    int max = a[0];
    for (int i = 1; i < n; i++)
        if (a[i] > max) max = a[i];
    cout << "\nНомера максимальных элементов: ";
    for (int i = 0; i < n; i++)
        if (a[i] == max) cout << i+1 << " ";
}
 
void preobraz(int a[], int n)
{
    int k = 1;
    for (int i = 0; i < n; i++)
    { a[i]+=k; k++; }
}
int main()
{
    int n = 0;
    cout << "Количество элементов массива = ";
    cin >> n;
    int * mas;
    mas = new int [n];
    vvod(mas, n);
    max(mas, n);
    preobraz(mas, n);
    print(mas, n);
    return 0;
}
1
badman
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 49
13.06.2012, 20:18  [ТС] #15
Дан массив из n целых чисел. Найти все максимальные элементы этого массивы (напечатать их номера). Затем преобразовать исходный массив по правилу: первый максимальный элемент увеличить на 1, второй — на 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
using namespace std;
 
void vvod(int a[], int n)
{
for (int i = 0; i < n; i++)
{
cout << "a[" <<i+1<<"] = ";
cin >> a[i];
}
}
void print (int a[], int n)
{
cout << "\n";
for (int i = 0; i < n; i++)
cout << a[i] << " ";
}
void max(int a[], int n)
{
int max = a[0];
for (int i = 1; i < n; i++)
if (a[i] > max) max = a[i];
cout << "\nNomera max elementov: ";
for (int i = 0; i < n; i++)
if (a[i] == max) cout << i+1 << " ";
}
 
void preobraz(int a[], int n)
{
int k = 1;
for (int i = 0; i < n; i++)
{ a[i]+=k; k++; }
}
int main()
{
int n = 0;
cout << "Kol-vo elementov massiva  = ";
cin >> n;
int * mas;
mas = new int [n];
vvod(mas, n);
max(mas, n);
preobraz(mas, n);
print(mas, n);
 
return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2012, 20:18
Привет! Вот еще темы с ответами:

Массивы. Заменить все максимальные элементы нулями( - C++
Всем доброго времени суток. заменить все максимальные элементы нулями(одномерный массив)

Заменить все максимальные элементы последовательности нулями - C++
Дана последовательность чисел. Заменить все максимальные элементы нулями.

Удалить из целочисленного массива все максимальные элементы - C++
Удалить из целочисленного массива все максимальные элементы и вставить после последнего удаленного минимальный элемент. Буду очень...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.06.2012, 20:18
Ответ Создать тему
Опции темы

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