Есть задача,найти в массиве максимальный и минимальный елемент, и поменять местами. Я нашел такой пример, но не знаю как вывести измененный массив:
#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;
Ой, что-то вы недоговариваете :)
Ну как вот это вообще может скомпилироваться, да еще и работать - не понимаю:
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;.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости