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

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

Восстановить пароль Регистрация
 
FriendIk
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 59
16.12.2012, 17:08     В массиве поменять местами максимальный элемент с последним #1
Массив содержит 18 элементов вещественного типа. В этом массиве поменять местами максимальный элемент с последним.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 17:08     В массиве поменять местами максимальный элемент с последним
Посмотрите здесь:

C++ Поменять местами максимальный и минимальный элемент в массиве
В двумерном массиве поменять местами максимальный и минимальный элемент местами C++
C++ Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами
Поменять местами минимальный элемент с первым элементом массива, а максимальный элемент с последним C++
В массиве из 10 чисел найти наименьший элемент и поменять его местами с последним элементом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
JlightenDev_C++
 Аватар для JlightenDev_C++
61 / 61 / 7
Регистрация: 12.08.2012
Сообщений: 150
16.12.2012, 18:45     В массиве поменять местами максимальный элемент с последним #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
#include <iostream>
#include <conio.h>
#include <time.h>
 
int main(){
    srand(time(0));
    int save(0), index(0);
    setlocale(LC_ALL, "RUS");
    int array[18] = {};
    for(int i = 0; i < 18; i++){
            array[i] = rand()%9+1;
            std::cout << array[i] << " ";
            }
    for(int i = 0, max = 0; i < 18; i++){
            if(max < array[i]){
                   max = array[i];
                   index = i;
                   }
            }
    save = array[index];
    array[index] = array[17];
    array[17] = save;
    std::cout << "\n";
    for(int i = 0; i < 18; i++){
            std::cout << array[i] << " ";
            }
    _getch();
    return 0;
}
FriendIk
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 59
16.12.2012, 19:49  [ТС]     В массиве поменять местами максимальный элемент с последним #3
Это не то...
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
16.12.2012, 22:52     В массиве поменять местами максимальный элемент с последним #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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main () {
    srand(time(NULL));
    const int size = 18;
    int max = 0;
    double arr[size];
    
    std::cout << "Array: " << std::endl;
    for (int i = 0; i < size; i++) {
        std::cout << std::setw(9) << (arr[i] = double(rand()) / double(15)) << " ";
        max = arr[i] > arr[max] ? i : max;
    }
    std::cout << "\nMaximal element: " << arr[max] << "; Last element: " << arr[size - 1] << std::endl;
    
    double tmp = arr[max];
    arr[max] = arr[size - 1];
    arr[size - 1] = tmp;
    
    std::cout << "New array: " << std::endl;
    for (int i = 0; i < size; i++)
        std::cout << std::setw(9) << arr[i];
    std::cout << std::endl;
    
    system("pause");
    return 0;
}
FriendIk
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 59
16.12.2012, 23:03  [ТС]     В массиве поменять местами максимальный элемент с последним #5
У меня StringGrid1 в который вводим элементы и StringGrid2 в котором после нажатия Button1 выводится задание...
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.12.2012, 23:11     В массиве поменять местами максимальный элемент с последним #6
В одну строчку
C++
1
 std::swap(*std::max_element(std::begin(v), std::end(v)), *v.rbegin());
Добавлено через 44 секунды
Полный листинг программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
   std::vector<int> v = { 1, 2, 4, 3, 3, 0 };
   std::swap(*std::max_element(std::begin(v), std::end(v)), *v.rbegin());
   std::copy(std::begin(v), std::end(v), std::ostream_iterator<int> (std::cout, " "));
   std::cout << std::endl;
}
http://liveworkspace.org/code/2IKgMc
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 23:18     В массиве поменять местами максимальный элемент с последним
Еще ссылки по теме:

В двумерном массиве поменять местами максимальный и минимальный элемент C++
Найти первый максимальный элемент и поменять его местами с последним элементом массива C++
Поменять местами максимальный элемент матрицы с его первым элементом а минимальный с последним C++

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

Или воспользуйтесь поиском по форуму:
FriendIk
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 59
16.12.2012, 23:18  [ТС]     В массиве поменять местами максимальный элемент с последним #7
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
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a[18];int i,max=0,imax;
for(i=0;i<18;i++)a[i]=StrToFloat(Memo1->Lines->Strings[i]);
max=a[0];imax=0;
for(i=1;i<18;i++)
if(a[i]>max){max=a[i];imax=i;}
a[imax]=a[17];
a[17]=max;
Memo2->Clear();
for(i=0;i<18;i++)Memo2->Lines->Add(FloatToStr(a[i]));
}
вот так надо только у меня не Мемо а Stringrid
Yandex
Объявления
16.12.2012, 23:18     В массиве поменять местами максимальный элемент с последним
Ответ Создать тему
Опции темы

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