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

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

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

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

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

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

Размер: 5.8 Кб
Код 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 в 14:34.
petz96 вне форума  
Старый 24.05.2015, 14:23   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,046
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибки SsAn Visual C++ 0 08.12.2014 19: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 22:35
Помогите исправить ошибки ...С++ Настенька Помощь студентам 1 25.03.2007 23:30


02:33.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.