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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Blackscorpion
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 11
#1

Поменять местами наибольший и наименьший элементы? - C++

21.01.2012, 15:50. Просмотров 1465. Ответов 7
Метки нет (Все метки)

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

Поменять местами наибольший и наименьший элементы - C++
1. Даны действительные числа а1, а2, ... , аn. Поменять местами наибольший и наименьший элементы. 2. Даны целые числа а1,а2, ..., аn и...

Поменять местами наибольший и наименьший элементы - C++
Даны действительные числа х1,....,хn (все числа попарно различны). Поменять местами наибольший и наименьший элементы.

Поменять местами наибольший и наименьший элементы - C++
Ребят помогите пожалуйста. Даны действительные числа х1,...,хn (все числа попарно различны). Поменять местами наибольший и наименьший...

Поменять местами наибольший и наименьший элементы - C++
В общем задание было такое: (Тема одномерные массивы) Даны действительные числа а1, а2,..., аn. Поменять местами наибольший и наименьший...

Поменять местами наибольший и наименьший элементы массива - C++
Всем привет! Есть несколько вопросов. Вот код: //Даны действительные числа а1, а2,..., аn. Поменять местами наибольший и наименьший...

Найти наибольший и наименьший элементы и поменять их местами. - C++
Помогите ребята задания вроде легкое. 1) Дано масив с 7 елементов. Типа INT. Нужно найти наибольший и наименьший элементы и поменять их...

7
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.01.2012, 15:56 #2
C++
1
std::iter_swap(std::min_element(v.begin(), v.end()), std::max_element(v.begin(), v.end()));
1
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.01.2012, 15:58 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iterator>
 
int main()
{
    srand(time(NULL));
    std::vector<int> v(10);
    std::generate(v.begin(), v.end(), [] { return rand() % 20; });
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::swap(*std::max_element(v.begin(), v.end()), *std::min_element(v.begin(), v.end()));
    std::cout << std::endl;
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
http://liveworkspace.org/code/68c2db9570adcd0d9fac52889dd663d2
1
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
21.01.2012, 15:59 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    int arr[] = { 1, 2, 3, -4, 5, 6, 12, 7, 8 };
    std::vector < int > vec( arr, arr + sizeof( arr ) / sizeof( *arr ) );
    
    std::iter_swap( std::max_element( vec.begin(), vec.end() ),
                    std::min_element( vec.begin(), vec.end() ) );
    
    std::copy( vec.begin(), vec.end(), std::ostream_iterator < int > ( std::cout, " " ) );
    return 0;
}
1
megastriker
49 / 49 / 18
Регистрация: 05.12.2010
Сообщений: 261
21.01.2012, 16:04 #5
Цитата Сообщение от Blackscorpion Посмотреть сообщение
Даны действительные числа а1, а2, ... an

если n известно и числа даны в массиве a[n], то:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int min = a[0], max = a[i], maxi=-1, mini=-1;
for (i = 0; i < n; i++) {
  if (a[i] < min) {
    mini = i;
    min = a[i];
  }
  else if (a[i] > max) {
    maxi = i;
    max = a[i];
  }
}
int tmp;
a[mini] = tmp;
a[mini] = a[maxi];
a[maxi] = tmp;
1
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.01.2012, 16:15 #6
Цитата Сообщение от megastriker Посмотреть сообщение
max = a[i],
С чего бы это i?
1
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
21.01.2012, 16:16 #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
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    double* a;
    double t;
    int n, i;
    int imin = 0, imax = 0;
 
    printf("n: ");
    scanf("%d", &n);
 
    a = (double*)malloc(n * sizeof(double));
    for(i = 0; i < n; ++i)
    {
        printf("[%d]: ", i + 1);
        scanf("%lf", &a[i]);
    }
 
    for(i = 1; i < n; ++i)
    {
        if(a[i] > a[imax]) imax = i;
        else if(a[i] < a[imin]) imin = i;
    }
 
    t = a[imin];
    a[imin] = a[imax];
    a[imax] = t;
 
    printf("--------------\n");
    for(i = 0; i < n; ++i)
        printf("%f ", a[i]);
    printf("\n");
 
    free(a);
 
    return 0;
}
1
megastriker
49 / 49 / 18
Регистрация: 05.12.2010
Сообщений: 261
21.01.2012, 16:28 #8
Цитата Сообщение от go Посмотреть сообщение
С чего бы это i?
тьфу ты, точно. с ходу писал, ошибся.

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
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    int n, i;
    scanf("%d", &n);
    int a[n];
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
    int min = a[0], max = a[1], maxi=1, mini=0;
    for (i = 0; i < n; i++) {
        if (a[i] < min) {
            mini = i;
            min = a[i];
        }
        else if (a[i] > max) {
            maxi = i;
            max = a[i];
        }
    }
    int tmp = a[mini];
    a[mini] = a[maxi];
    a[maxi] = tmp;
    return 0;
}
1
21.01.2012, 16:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2012, 16:28
Привет! Вот еще темы с ответами:

Поменять местами наибольший и наименьший элементы массива - C++
сроки поджимают, а вчера я еще потерял флэшку с кривой и забагованной первой функцией этой программы. руки совсем опустились, последняя...

Матрицы. Поменять местами наибольший и наименьший элементы - C++
3. Дана матрица A(N,M). Поменять местами её наибольший и наименьший элементы.

Поменять местами наибольший и наименьший элементы матрицы - C++
Прошу помощи. необходимо поменять наибольший и наименьший элементы матрицы, у меня проблема #include &quot;stdafx.h&quot; #include&lt;iostream&gt; ...

Поменять местами наибольший и наименьший элементы последовательности - C++
Даны действительные числа a1, a2, ..., an. Поменять местами наибольший и наименьший элементы. Заранее премного благодарен.


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

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

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