Вывод измененного массива

210
15 марта 2017, 19:34

Есть задача,найти в массиве максимальный и минимальный елемент, и поменять местами. Я нашел такой пример, но не знаю как вывести измененный массив:

#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv)
{
    int a;
    int N;
    int b;
    int c;
    int k;
    int g;
    int arr[N];
    int max = arr[0];
    int min = arr[0];
    cout << "vvedit N=";
    cin >> N;
    cout << "vvedit massiv";
    for (int i = 0; i < N; i++)
    {
        cin >> arr[i];
    }
    for (int i = 0; i < N; i++)
    {
        if (max < arr[i])
        {
            max = arr[i];
            k = i;
        }
        if (min > arr[i])
        {
            min = arr[i];
            g = i;
        }
    }
    a = max = k;
    b = min = g;
    c = a;
    a = b;
    b = c;
    cout << "max=" << max << endl;
    cout << "min=" << min << endl;
    for (int i = 0; i < N; i++)
    {
        cout << arr[i];
    }
    system("pause");
    return 0;
Answer 1

Ой, что-то вы недоговариваете :)

Ну как вот это вообще может скомпилироваться, да еще и работать - не понимаю:

int N;
int arr[N];
int max = arr[0];

Вот, держите:

#include <vector>
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    unsigned int N;
    cout << "Number of items: ";
    cin >> N;
    vector<int> a(N);
    for(size_t i = 0; i < N; ++i)
    {
        cout << "a["<<i<<"] = ";
        cin >> a[i];
    }
    int min, max;
    size_t imin, imax;
    min = max = a[imin = imax = 0];
    for(size_t i = 0; i < N; ++i)
    {
        if (a[i] > max)
        {
            imax = i;
            max = a[i];
        }
        else if (a[i] < min)
        {
            imin = i;
            min = a[i];
        }
    }
    int tmp = a[imax];
    a[imax] = a[imin];
    a[imin] = tmp;
    cout << "max = " << max << endl;
    cout << "min = " << min << endl;
    for(size_t i = 0; i < N; ++i)
    {
        cout << "a["<<i<<"] = " << a[i] << endl;
    }
}

Если позарез надо через массивы, замените

vector<int> a(N);

на

int * a = new int[N];

и перед выходом из main добавьте delete[] a;.

READ ALSO
Сгруппировать массив - C++

Сгруппировать массив - C++

Всем привет,есть такое заданиеОно у меня проходит 0%

326
Qt делегаты и условное форматирование

Qt делегаты и условное форматирование

Нужно создать делегат для столбца в таблице, который меняет цвет фона в ячейке по цветовой шкале от самого большого значения (тёмно-зелёный)...

317
Численные методы (метод хорд)

Численные методы (метод хорд)

Было задание найти корни уравнения методом хордКод выглядит следующим образом:

279
Из struct в class и чтение с файла C++

Из struct в class и чтение с файла C++

Всем доброго времени суток, помогите пожалуйста разобратьсяБыла некая структура:

261