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

В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами - C++

Восстановить пароль Регистрация
 
Fanat35
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
10.02.2014, 18:05     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами #1
В массиве A из 20 элементов определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами.
Элементы массива A должны быть случайными числами в диапазоне от 0 до 100.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2014, 18:05     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами
Посмотрите здесь:

C++ В массиве A из 20 элементов определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами.
C++ таблицу квадратов первых десяти целых положительных чисел
Заполнить массив из десяти элементов C++
Найти минимальный нечетный из данных десяти ненулевых целочисленных элементов, вводимых с клавиатуры C++
C++ Найти минимальный четный из данных десяти ненулевых целочисленных элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
10.02.2014, 18:27     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами #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
#include<iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
int main()
{
int max1,max2,i1=0,i2=10,buf,a[21];
 
for(int i=0;i<20;i++)
    {
        a[i]=rand()%200;
    }
 
max1=a[0];max2=a[10];
for(int i=0;i<10;i++)
if(max1<a[i]) 
      {
        max1=a[i];i1=i;
      }
 
for(int i=10;i<20;i++)
if(max2<a[i]) 
     {
       max2=a[i];i2=i;
     }
 
a[i1]=max2;
a[i2]=max1;
 
for(int i=0;i<20;i++)
cout<<a[i]<<' ';
return 0;}
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
10.02.2014, 18:44     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами #3
Fanat35,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include<cstdlib>
#include<ctime>
#include<iomanip>
int main()
{
        srand(time(NULL));
    const size_t arraySize = 20;
    int *array = new int [arraySize];
    for(size_t i=0; i<arraySize; i++)
        std::cout<<std::setw(4)<<(array[i] = rand()%100);
    size_t MaxFirst = 0,MaxLast = 9;
    for(size_t i=1;i<arraySize;i++)
    {
        MaxFirst = (array[i]>array[MaxFirst] && i < 10)? i :MaxFirst;
        MaxLast = (array[i]>array[MaxLast] && i > 10)? i :MaxLast;
    }
    std::cout<<"\nNew array:\n";
    std::swap(array[MaxFirst],array[MaxLast]);
    for(size_t i=0; i<arraySize; i++)
        std::cout<<std::setw(4)<<array[i];
}
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
10.02.2014, 18:55     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами #4
Fanat35,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <iostream>
#include <algorithm>
#include <vector>
#include <ctime>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    vector<int> vec(20);
    for_each(vec.begin(), vec.end(), [](int &a){a = rand()%100;});
    iter_swap(max_element(vec.begin(), vec.begin()+10), max_element(vec.begin()+10, vec.end()));
    system("pause");
    return 0;
}

Не по теме:

наконец-то я вкусил с++11

Fanat35
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
10.02.2014, 19:06  [ТС]     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами #5
Спасибо большое, кто откликнулся.
Но какой правильной код то?
))
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
10.02.2014, 19:09     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами #6
Цитата Сообщение от Fanat35 Посмотреть сообщение
Но какой правильной код то?
мой работает. могу предположить, что другие тоже компилировали перед тем, как выложить)
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
10.02.2014, 19:10     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами #7
metaluga145, Твой код то рабочий, но пользователь этого явно не заметит, имхо.
Для приличия сделай вывод массива
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2014, 19:15     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами
Еще ссылки по теме:

C++ Заполнить массив из десяти элементов
Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов C++
C++ Вычислить сумму первых десяти натуральных чисел

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

Или воспользуйтесь поиском по форуму:
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
10.02.2014, 19:15     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами #8
по просьбам пользователей, обновленный код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
#include <algorithm>
#include <vector>
#include <ctime>
#include <iterator>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    vector<int> vec(20);
    for_each(vec.begin(), vec.end(), [](int &a){a = rand()%100;});
    copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    iter_swap(max_element(vec.begin(), vec.begin()+10), max_element(vec.begin()+10, vec.end()));
    copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    system("pause");
    return 0;
}
кст, если кто-то подскажет как избавиться от
C++
1
cout << endl;
в таком выводе, буду благодарен
Yandex
Объявления
10.02.2014, 19:15     В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами
Ответ Создать тему
Опции темы

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