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

В одномерном массиве вставить новый элемент после всех максимальных - C++

Восстановить пароль Регистрация
 
Traveller710
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 48
11.12.2010, 20:27     В одномерном массиве вставить новый элемент после всех максимальных #1
Помогите в одномерном массиве вставить новый элемент после всех максимальных
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2010, 20:27     В одномерном массиве вставить новый элемент после всех максимальных
Посмотрите здесь:

C++ Вставить новый элемент после последнего положительного
Массивы. Вставить новый элемент после всех элементов, которые заканчиваются на данную цифру C++
C++ Вставить число k1 после всех чисел в массиве больше чем digit
Вставить новый элемент в массив после первого положительного C++
Вставить после данного элемента списка новый элемент, и вывести указатель на добавленный элемент C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Serhiy:)
 Аватар для Serhiy:)
2 / 2 / 1
Регистрация: 09.10.2010
Сообщений: 72
11.12.2010, 21:49     В одномерном массиве вставить новый элемент после всех максимальных #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
#include<iostream>
#include<time.h>
using namespace std;
 
#define SIZE 100 
 
int main()
{
  int ar[SIZE];
  int mi,max,i,c;
  
     srand((unsigned) time(NULL));
     setlocale(LC_ALL,".1251");
   
     for(i=0;i<10;i++){ //Заполняем массив рандомом и выводим его
         ar[i]= rand() %100;
      cout<<"ar["<<i<<"]= "<<ar[i]<<endl;
     }
      
     max=ar[0];//Предположим что максимальный элемент 0-й 
     
     cout<<"Введите число: "; cin>>c;//вводим число которое надо вставить
     
//Находим максимальный элемент и и его адрес     
     for(i=0;i<10;i++){ if(ar[i]>=max){ mi=i; max=ar[i];}}
 //максимальный в mi,значит в следующий(mi+1) записываем с 
       ar[mi+1]=c;
       cout<<"max= "<<ar[mi]<<" nom= "<<mi<<endl;
       
        
       for(i=0;i<10;i++) cout<<"ar["<<i<<"]= "<<ar[i]<<endl;
     
  
           system("pause");
}
Добавлено через 1 минуту
Посмотрите. Я думаю это правильное решение
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
11.12.2010, 21:52     В одномерном массиве вставить новый элемент после всех максимальных #3
Serhiy, Ага. Использовать волшебные числа - дико верное решение.
Serhiy:)
 Аватар для Serhiy:)
2 / 2 / 1
Регистрация: 09.10.2010
Сообщений: 72
11.12.2010, 21:56     В одномерном массиве вставить новый элемент после всех максимальных #4
Что такое волшебные числа? Я такое гдето слышал
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
11.12.2010, 21:59     В одномерном массиве вставить новый элемент после всех максимальных #5
Serhiy, i<10 - раз
rand() %100 - два
i<10 - три
i<10 - четыре.

Добавлено через 1 минуту
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 <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::vector<int> Vec;
    int t=0;
    while(std::cout<<"> " && std::cin>>t)
        Vec.push_back(t);
    std::cin.clear();
    int max=*std::max_element(Vec.begin(), Vec.end());
    std::cin.get();
    int elem=0;
    std::cout<<"Enter element: ";
    std::cin>>elem;
    int max_numb=std::count(Vec.begin(), Vec.end(), max);
    int cnt=0;
    for(size_t i=0; i<Vec.size(); ++i)
    {
        if(Vec[i] == max)
            ++cnt;
        if(cnt == max_numb)
        {
            Vec.insert(Vec.begin() + ++i, elem);
            break;
        }
    }
    std::copy(Vec.begin(), Vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout<<'\n';
}
Serhiy:)
 Аватар для Serhiy:)
2 / 2 / 1
Регистрация: 09.10.2010
Сообщений: 72
11.12.2010, 22:13     В одномерном массиве вставить новый элемент после всех максимальных #6
Да мне ещё учится и учится, хотя по программированию у меня 5
Yandex
Объявления
11.12.2010, 22:13     В одномерном массиве вставить новый элемент после всех максимальных
Ответ Создать тему
Опции темы

Текущее время: 11:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru