0 / 0 / 0
Регистрация: 13.04.2019
Сообщений: 20
1

Найти max по модулю элемент массива X[n] и поставить его первым

29.09.2019, 13:27. Показов 4607. Ответов 5

Студворк — интернет-сервис помощи студентам
Привет всем) по заданию с заголовки темы я поставил макс первым, но как его не поставить, а именно заменить местами первый с максимальный, подскажите пожалуйста, чем проще, тем лучше, для понятия

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
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
 
    unsigned int n;
    
    cout << "Введите кол-во элементов массива z: "; 
    cin >> n;
 
    // выделение памяти под массивы
    int *x = new int[n];
//    int *y = new int[n];
 
    // ввод данных
    cout << endl << "Введите массив x" << endl;
    for (size_t i = 0; i < n; i++)
    {
        cin >> x[i];
    }
    
    size_t max=x[0], temp;
    for(size_t i = 0; i < n; i++)
    {
        if(abs(x[i])>max)
        {
            max=x[i];
        }
    }
    
    for(size_t i = 0; i < n; i++)
    {
        temp=x[i];
        x[i]=x[i+1];
        max=temp;
    
    cout<<" x["<<i<<"] = "<<x[i]<<endl;
    }
    delete [] x;
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2019, 13:27
Ответы с готовыми решениями:

Найти максимальный элемент массива и поставить его первым
Доброго времени суток! Очень нуждаюсь в вашей помощи, помогите, пожалуйста, решить задачу: Найти...

Найти максимальный по модулю элемент массива и его номер, сумму расположенных между первым и последним положит
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю...

Найти максимальный элемент массива и поменять его местами с первым положительным элементом
Здравствуйте. Есть задание Дан массив чисел а0, а1, …, а15. Найти максимальный элемент этого...

В массиве из 6 целых чисел найти наибольший элемент и поменять его местами с первым элементом массива
Очень прошу, помогите развязать: 1)В массиве из 6 целых чисел найти наибольший элемент и поменять...

5
Модератор
Эксперт С++
13317 / 10623 / 6346
Регистрация: 18.12.2011
Сообщений: 28,368
29.09.2019, 13:39 2
Лучший ответ Сообщение было отмечено Princeofsecret как решение

Решение

C++
1
2
3
4
5
6
7
8
9
    size_t imax=0;
    for(size_t i = 1; i < n; i++)
    {
        if(abs(x[i])>x[imax])
            imax=i;
    }
    int temp=x[0];
    x[0]=x[imax];
    x[imax]=t;
1
0 / 0 / 0
Регистрация: 13.04.2019
Сообщений: 20
29.09.2019, 13:45  [ТС] 3
zss, спасибо большое)
0
7430 / 5022 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
29.09.2019, 20:06 4
zss, проверяю на массиве {-18,11,17} - не работает (результат {17,11,-18})
0
306 / 287 / 116
Регистрация: 23.01.2018
Сообщений: 933
29.09.2019, 20:43 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <algorithm>
#include <cmath>
#include <iostream>
#include <iterator>
#include <vector>
 
using namespace std;
 
int
main(void)
{
    vector<int> v;
    for (int x; cin >> x; v.push_back(x));
    iter_swap(max_element(v.begin(), v.end(), [](int a, int b){return abs(a) < abs(b);}), v.begin());
    copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    return 0;
}
0
Модератор
Эксперт С++
13317 / 10623 / 6346
Регистрация: 18.12.2011
Сообщений: 28,368
29.09.2019, 20:53 6
Цитата Сообщение от Yetty Посмотреть сообщение
не работает
вот тут потерялся модуль:
Цитата Сообщение от zss Посмотреть сообщение
if(abs(x[i])>x[imax])
C++
1
if( abs(x[i])>abs(x[imax]) )
0
29.09.2019, 20:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2019, 20:53
Помогаю со студенческими работами здесь

Найти минимальный элемент массива, поставить его на первое место, остальные элементы сдвинуть
а)Дана последовательность n элементов в виде массива. Найти минимальный элемент массива,паставить...

Найти максимальный по модулю элемент массива x(n) и поставить его первым
Найти максимальный по модулю элемент массива x(n) и поставить его первым. Ввод с клавиатуры....

Найти наибольший элемент массива и поставить его первым.
Найти наибольший элемент массива и поставить его первым.

Найти наибольший элемент массива и поставить его первым
Дан массив чисел. Найти наибольший элемент, поставить его первым.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru