Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Sllem
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 2
08.12.2013, 19:23     Поменять местами первый положительный и последний отрицательный элементы генераторам случайных чисел в одномерном массиве #1
Помогите составить программу, которая могла менять местами последний максимальный элемент с минимальным и что бы этот массив был создан с помощью генератором случайных чисел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 19:23     Поменять местами первый положительный и последний отрицательный элементы генераторам случайных чисел в одномерном массиве
Посмотрите здесь:

C++ Переставить в 1-м массиве первый отрицательный и последний положительный элемент местами
C++ В одномерном массиве вещественных чисел поменять местами элементы с четными и нечетными индексами.
Поменять в массиве местами первый максимальный и последний минимальный элементы C++
Поменять местами максимальный и последний отрицательный элементы массива C++
C++ Написать программу, меняющую в одномерном массиве местами первый элемент с минимальным, а последний с максимальным
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
МаксимТ
 Аватар для МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
08.12.2013, 19:32     Поменять местами первый положительный и последний отрицательный элементы генераторам случайных чисел в одномерном массиве #2
можно код выложить, чтобы было что править?
Sllem
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 2
08.12.2013, 19:57  [ТС]     Поменять местами первый положительный и последний отрицательный элементы генераторам случайных чисел в одномерном массиве #3
#include <iostream>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>

using namespace std;

int main() {
const int m = 5;
const int n = 6;
int matr[m][n];
int i, j;
srand((unsigned)time( NULL));
for (i=0; i<m; i++)
for (j=0; j<n; j++)
matr[i][j] = rand()%50-25;

cout << "Matrica: " << endl;
for (i=0; i<m; i++) {
for (j=0; j<n; j++)
cout << matr[i][j] << " ";
cout << endl;
}
cout << endl;
int min;
int iMin;
int temp;
for (i=0; i<m; i++) {
iMin = 0;
min = abs(matr[i][iMin]);
for (j=1; j<n; j++)
if (abs(matr[i][j])<min) {
min = abs(matr[i][j]);
iMin = j;
}
temp = matr[i][iMin];
matr[i][iMin] = matr[i][n-1];
matr[i][n-1] = temp;
}


cout << "Izmenennaya Matrica: " << endl;
for (i=0; i<m; i++) {
for (j=0; j<n; j++)
cout << matr[i][j] << " ";
cout << endl;
}
cout << endl;
cout << endl;
getch();

}

Добавлено через 5 минут
Только здесь надо не матрица а просто взять из самогенерирующегося массива последний минимальный элемент и максимальный элемент и поменять их местами.

Добавлено через 9 минут
Этот пример почти похожий только он не сгенерированный массив а как константа.

#include <iostream>

int main()
{
const int size = 10;
int array[size] = { 12, 45, -5, 12, 89, 100, 23, -7, -90, 12 };
int i;
int index = 0;
int max = array[0];
for ( i = 1; i < size; i++)
if(max < array[i])
{
max = array[i];
index = i;
}

for ( i = size - 1; i>= 0; i--)
if(array[i] < 0)
{
int temp = array[i];
array[i] = array[index];
array[index] = temp;
break;
}

for ( i = 0; i < size; i++)
std::cout << array[i] << " ";
std::cout << std::endl;
}
МаксимТ
 Аватар для МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
08.12.2013, 20:00     Поменять местами первый положительный и последний отрицательный элементы генераторам случайных чисел в одномерном массиве #4
ну здесь надо везде убрать либо первый либо второй цикл, тогда получится одномерный массив,
ну и соотв. подредактировать его объявление, например так:
C++
1
int matr[m];
C++
1
min = abs(matr[i][iMin]);
присвоение минимального значения должно быть до цикла в котором перебираются элементы.
ну и соотв. аналогичным образом надо искать iMax.

как только цикл перебора отработает они(iMax, iMin) будут содержать индексы последних макс. и мин. элементов.
а затем просто поменять местами, как здесь:
C++
1
2
3
temp = matr[i][iMin];
matr[i][iMin] = matr[i][n-1];//только в нашем случае iMax а не n-1
matr[i][n-1] = temp;
токо тут для матрицы, для одномерного массива будут одни квадратны скобки.
Yandex
Объявления
08.12.2013, 20:00     Поменять местами первый положительный и последний отрицательный элементы генераторам случайных чисел в одномерном массиве
Ответ Создать тему
Опции темы

Текущее время: 08:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru