Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.87/30: Рейтинг темы: голосов - 30, средняя оценка - 4.87
wlad565
1

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

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

Дан массив С, состоящий из N элементов (N <10). Поменять местами первый элемент массива с максимальным, другой с минимальным, остальное оставить без изменения. Вывести на печать заданий и новообразованный массивы.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2013, 11:18
Ответы с готовыми решениями:

Первый элемент массива поменять с минимальным, а последний с максимальным
Добрый вечер. Мой знакомый написал программу для определения максимального и минимального элемента...

Поменять местами первый элемент массива с максимальным
Требуется поменять местами первый элемент массива с максимальным.

Поменять местами первый элемент массива с минимальным элементом
3.массив из 12 элементов,заполнен рандомно числами от -50 до 50.поменять местами первый элемент...

Требуется поменять местами первый элемент массива с максимальным
Требуется поменять местами первый элемент массива с максимальным. ВХОДНЫЕ ДАННЫЕ В первой...

7
189 / 159 / 35
Регистрация: 22.05.2013
Сообщений: 455
Записей в блоге: 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
441 / 409 / 132
Регистрация: 21.01.2012
Сообщений: 974
13.06.2013, 11:56 3
C++
1
std::swap(*std::min_element, *std::max_element)
0
189 / 159 / 35
Регистрация: 22.05.2013
Сообщений: 455
Записей в блоге: 1
13.06.2013, 11:57 4
Есть только одна неопределенность. Вторую замену делать в уже "новом" массиве, или ориентироваться на старый? Мой код ориентируется на старый.
0
0 / 0 / 2
Регистрация: 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
189 / 159 / 35
Регистрация: 22.05.2013
Сообщений: 455
Записей в блоге: 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
16 / 16 / 20
Регистрация: 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
0 / 0 / 2
Регистрация: 25.04.2013
Сообщений: 11
14.06.2013, 06:20 8
Nikolai699 и Мимино, большое спасибо!)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2013, 06:20

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Требуется поменять местами первый элемент массива с максимальным
Задача следующая: Требуется поменять местами первый элемент массива с максимальным. Входные...

Первый элемент массива поменять местами с максимальным элементом
Составить программу, которая заполняет массив a случайными числами в диапазоне от 0 до 10, затем...

Поменять местами первый элемент массива с самым левым минимальным элементом
Поменять местами первый элемент массива с самым левым минимальным элементом, а затем поделить все...

Написать программу,поменять местами первый элемент и минимальный, оставив остальные элементы без изменения
Напишите программу, которая запрашивает натуральное число N (не более 100), далее...


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

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

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