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

Одномерный массив (элементы с четными индексами переписать в массив z.в массиве z поменять местами максимальный и минимальный элементы) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить является ли матрица магическим квадратом http://www.cyberforum.ru/cpp-beginners/thread795114.html
Здравствуйте. помогите написать программу на языке С++. Дана целая матрица n-го порядка. Определить является ли она магическим квадратом, т.е. такой в которой суммы элементов во всех стороках и...
C++ Непонятны некоторые функции Непонятны следующие функции, что они выполняют: (char)((int)('a')+j)) break; // что значит эта запись? char PROC(char s) // почему записывается в скобках новый char http://www.cyberforum.ru/cpp-beginners/thread795105.html
C++ Задача на массив и строки
Написать программу, которая вводит с клавиатуры массив, из N вещественных чисел, находит среди элементов массива минимальный и максимальный элементы и их количество и выводит результат пользователю;...
C++ Удалить из числа все повторяющиеся цифры кроме первого вхождения. Ошибка в коде
Удалить из числа все повторяющиеся цифры кроме первого вхождения. Например: на входе: 112, на выходе: 12. В моем случаи: на входе: 112, на выходе: 12-86841313513. #include<stdio.h> ...
C++ считывание амперсанда http://www.cyberforum.ru/cpp-beginners/thread795068.html
Нужно сделать считывание амперсанда без замены его в цикле. С использованием gets и sscanf. Добавлено через 4 часа 21 минуту #include "StdAfx.h" #include <windows.h> #include <iostream>...
C++ Программирование с использованием массивов и строк Постановка задачи 1. Задан массив, состоящий из слов. Используя функции сформировать и вывести массив слов заданного типа. Восьмеричное Long; Шестнадцатеричное Int; 2. Задана строка,... подробнее

Показать сообщение отдельно
kran69
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 9
26.02.2013, 12:30
Самый простой метод найти мин и макс, так это looр'ить через весь массив и сравнивать элементы друг с другом, что-то типа этого:

C++
1
2
3
4
5
6
7
8
9
int min(int myArr[], int size)
{
    int min = myArr[0];
    for (int i = 1; i < size; ++i)
    {
        if(min >= myArr[i]) { min = myArr[i]; }
    }
    return min;
}
что-бы найти макс, нужно только знак равенства поменять. Это не самый лучший способ, так как через один и тот-же массив придеться лупить два раза, есть более эффективные алгоритмы, но они сложнее. Так-же, зависит от того какой контейнер изпользуеться - в set уже все элементы уникальны и уже упорядочные, то есть все что нужно так это вызвать первый и последний элемент.

Как только будет известно мин и макс, можешь написать использовать std::swap. А можно немного поменять алгоритм мин и макс, так-что вместо элемента функция вернула-бы индекс и самому(ой) написать функцию которая поменяет мин и макс в массиве.

Добавлено через 4 минуты
Цитата Сообщение от victoriana Посмотреть сообщение
а чем можно заменить функцию std::swap, <algorithm>??
можно самому(ой) написать swap:

C++
1
2
3
4
5
6
void swapMinAndMax(int myArr[], int indexOfMin, int indexOfMax)
{
    int min = myArr[indexOfMin];
    myArr[indexOfMin] = myArr[indexOfMax];
    myArr[indexOfMax] = min;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru