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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
wlad565
#1

Поменять местами первый элемент массива с максимальным, другой с минимальным, остальное оставить без изменения - C++

13.06.2013, 11:18. Просмотров 1451. Ответов 7
Метки нет (Все метки)

Дан массив С, состоящий из N элементов (N <10). Поменять местами первый элемент массива с максимальным, другой с минимальным, остальное оставить без изменения. Вывести на печать заданий и новообразованный массивы.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2013, 11:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поменять местами первый элемент массива с максимальным, другой с минимальным, остальное оставить без изменения (C++):

Написать программу, меняющую в одномерном массиве местами первый элемент с минимальным, а последний с максимальным - C++
Написать программу, меняющую в одномерном массиве местами первый элемент с минимальным, а последний с максимальным. Как можно это...

Поменять местами минимальный элемент и первый отрицательный элемент массива целых чисел - C++
Поменять местами минимальный элемент и первый отрицательный эле-мент массива целых чисел.Необходимо использовать указатели и динамическйи...

Поменять местами максимальный элемент массива и первый - C++
Смог поменять максимальный элемент массива на первый, но первый на максимальный не меняется. В чем ошибка? #include &lt;iostream.h&gt; ...

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

Поменять местами строки с максимальным и минимальным элементами - C++
вот код который определяет мин и макс елементи матрици а мне ище нужно поменять строки етих елементов местами.помогите !!! #include...

Поменять местами элементы с максимальным и минимальным значениями - C++
Пожалуйста помогите решить задачи. 1. Дан массив на 100 элементов случайных цифр в диапазоне от -50 до 50. Во всех последовательностях...

7
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
13.06.2013, 11:52 #2
Цитата Сообщение от wlad565 Посмотреть сообщение
другой с минимальным
Какой такой "другой"?
Я правильно понимаю, задание переведено с украинского? Дайте оригинал, я помогу.

Добавлено через 17 минут
Если я правильно понял, и
другой с минимальным
означает перестановку второго элемента с минимальным, то вот код:
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
44
45
46
47
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    const int size = 9;
    int arr[size], min, max, temp;
 
    srand(time(NULL));
    cout << "Исходный массив: ";
    for (int i = 0; i < size; i++)
    {
        arr[i] = 1 + rand() % 99;
        if (!i)
        {
            max = i;
            min = i;
        }
 
        if (arr[i] > arr[max])
            max = i;
        if (arr[i] < arr[min])
            min = i;
 
        cout << arr[i] << "  ";
    }
 
    cout << endl;
    temp = arr[0];          // меняем местами 1-й элемент и максимальный;
    arr[0] = arr[max];
    arr[max] = temp;
 
    temp = arr[1];          // меняем местами 2-й элемент и миниальный;
    arr[1] = arr[min];
    arr[min] = temp;
 
    cout << "Итоговый массив: ";
    for (int i = 0; i < size; i++)
        cout << arr[i] << "  ";
    cout << endl;
 
    system("pause");
    return 0;
}
Код для VS10. Если не будет работать, вместо
C++
1
2
3
#include "stdafx.h"
#include <iostream>
#include <iomanip>
нужно сделать
C++
1
2
3
#include <iostream>
#include <stdlib>
#include <time.h>
0
Пaтрик
416 / 391 / 39
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
13.06.2013, 11:56 #3
C++
1
std::swap(*std::min_element, *std::max_element)
0
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
13.06.2013, 11:57 #4
Есть только одна неопределенность. Вторую замену делать в уже "новом" массиве, или ориентироваться на старый? Мой код ориентируется на старый.
0
Amedal
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 11
13.06.2013, 13:45 #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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
int main()
{
   setlocale(LC_ALL, "rus");
   int mas[9],i,max,maxi,trum;
//------------------------------------------------------
   for (i=0; i<9; i++)
   {
     mas[i]=1+rand () %99;   
   };
//-----------------------------------------------------
   for (i=0; i<9; i++)
   {
     cout << mas[i] << " ";  
   };
   cout << "\n";
//------------------------------------------------------
   for (i=0; i<9; i++)
   {
    if (mas[i]>=mas[i++])
 
        max=mas[i];
        maxi=i;  
   };
 
   trum=mas[0];
   mas[0]=max;
   mas[maxi]=trum;
   
   for (i=0; i<9; i++)
   {
   cout << mas[i] << " ";
   }
   cout << "\n";
 
    system("pause");
    return 0;
}
Добавлено через 26 минут
Одну ошибочку у себя нашел
C++
1
if (mas[i]>=mas[[U]i+1[/U]])
Добавлено через 1 минуту
if (mas[i]>=mas[i+1])
0
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
13.06.2013, 15:06 #6
C++
1
2
3
4
5
6
7
for (i=0; i<9; i++)
   {
    if (mas[i]>=mas[i++])
 
        max=mas[i];
        maxi=i;  
   };
1. Это выйдет за пределы массива на последнем проходе.
2. Если максимальный элемент самый последний, ничего оно не найдет.
1
Nikolai699
16 / 16 / 3
Регистрация: 15.03.2012
Сообщений: 106
13.06.2013, 15:08 #7
Amedal, ошибка в строках с 21 по 27) у вас
C++
1
if (mas[i]>=mas[i++])
а нужно
C++
1
if (mas[i]>=max)
и еще забыли фигурные скобки
у вас
C++
1
2
3
4
5
6
7
for (i=0; i<9; i++)
   {
    if (mas[i]>=mas[i++])
 
        max=mas[i];
        maxi=i;  
   };
а нужно
C++
1
2
3
4
5
6
7
8
for (i=0; i<9; i++)
   {
    if (mas[i]>=max){
 
        max=mas[i];
        maxi=i;  
    }
   };
1
Amedal
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 11
14.06.2013, 06:20 #8
Nikolai699 и Мимино, большое спасибо!)
0
14.06.2013, 06:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2013, 06:20
Привет! Вот еще темы с ответами:

Поменять местами первый отрицательный и последний положительный элемент массива - C++
Поменять местами первый отрицательный и последний положительный елемент массива. Учесть возможность того, что отрицательные или...

Поменять местами первый и последний элемент массива (исправить код) - C++
Почему массив не не меняет первый и последний элемент местами? #include &lt;iostream&gt; #include &lt;locale.h&gt; using namespace std; ...

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

Поменять местами строку матрицы с максимальным и минимальным элементом - C++
Проблема такова: программа меняет местами строку с максимальным и минимальным элементом. Когда я пытаюсь присвоить минимальному и...


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

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

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