Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы
Старый 24.05.2015, 13:18   #1
petz96
 
Регистрация: 23.05.2015
Сообщений: 4
По умолчанию Помогите исправить ошибки(С++)

Программа не находит произведение значений положительных элементов массива и не перестанавливает элементы массива. Помогите найти ошибку.
ЗАДАНИЕ:
1) Дан массив x0, x1, x2,…, xn-1. Определить произведение значений положительных элементов массива, лежащих между элементами с максимальным по абсолютной величине значением и с минимальным значением.
2) В заданной квадратной матрице размера 2n*2n поменять местами значения элементов столбцов областей 3 и 4 (см. рисунок) с одинаковыми номерами.дд.png
Код C++
Код:
#include <iostream>

using namespace std;

void negative_elements(int* array1, int n)
{
	int min, abs_max, res1, res2 = 0, result = 1;

	abs_max = abs(array1[0]);
	for (int i = 1; i < n; i++)
	{
		if (abs(array1[i]) > abs_max)
		{
			abs_max = array1[i];
			res1 = i;
		}
	}
	cout << " Максимальное по абсолютному значению: " << abs_max << endl;

	min = array1[0];

	for (int i = 1; i < n; i++)
	{
		if (array1[i]  < min)
		{
			min = array1[i];
			res2 = i;
		}
	}

	cout << " Минимальное значение: " << min << endl;

	for (int i = res1 + 1; i > res2; i++)
	{
		if (array1[i] < 0)
		{
			result = result * array1[i];
		}
	}
	cout << " Произведение значений положительных элементов массива: " << result << endl;
}

void swap_areas(int **array2, int N)
{
	int k = 0;
	for (int i = 2 * N; i >= N; i--, k++)
	{
		for (int j = k; j < N; j++)
		{
			int swap = array2[i][j];
			array2[i][j] = array2[N - i - 1][j];
			array2[N - i - 1][j] = swap;
		}

	}

	cout << " Элементы массива " << N << "x" << N << " после перестановки\n";
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
		{
			cout << array2[i][j] << " ";
		}
		cout << endl;
	}
}


int main()
{
	setlocale(LC_ALL, "Russian");

	int x;

	cout << " Выберите действие:\n";
	cout << " 1 - Произведение положительных чисел на участке массива.\n";
	cout << " 2 - Перестановка местами 2х областей 2х мерного массива.\n";

	cin >> x;

	switch (x)
	{
	case 1:
		int* array1;
		int n, i;

		cout << " Введите размер массива:\n";

		cin >> n;
		array1 = new int[n];

		cout << " Введите элементы массива :\n";
		for (i = 0; i < n; i++)
		{
			cin >> array1[i];
		}

		negative_elements(array1, n);
		break;

	case 2:
		int  j, N;

		cout << " Введите размер квадратной матрицы 2*N:\n";
		cin >> N;
		cout << endl;
		N = 2 * N;


		int **array2 = new int*[N];
		for (i = 0; i < N; i++)
		{
			array2[i] = new int[N];
		}

		cout << " Введите элементы массива " << N << "x" << N << endl;
		for (i = 0; i < N; i++)
		{
			for (j = 0; j < N; j++)
			{
				cin >> array2[i][j];
			}
		}


		swap_areas(array2, N);

	}
	system("pause");
}

Последний раз редактировалось Вадим Мошев; 24.05.2015 в 13:34.
petz96 вне форума
Старый 24.05.2015, 13:23   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

Чем тема http://programmersforum.ru/showthread.php?t=278238 не устроила?

Кросспостинг запрещен
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Закрытая тема

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибки SsAn Visual C++ 0 08.12.2014 18:11
Помогите исправить ошибки в С++ Snaiper Помощь студентам 0 21.03.2014 23:05
помогите исправить ошибки((( BumBum4ik Паскаль, Turbo Pascal, PascalABC.NET 4 22.12.2013 20:29
Помогите исправить ошибки Satorin Общие вопросы Delphi 4 25.12.2008 21:35
Помогите исправить ошибки ...С++ Настенька Помощь студентам 1 25.03.2007 22:30


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840