Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 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
Сообщений: 18,922
По умолчанию

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

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


Купить рекламу на форуме - 42 тыс руб за месяц



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