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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2019, 17:21   #1
bylbyl9tor
Пользователь
 
Регистрация: 07.10.2018
Сообщений: 28
Стрелка Помогите, ошибся в функциях

После функции output_after_sortir пошли проблемы


Код:
#include <iostream>
#include<cmath>
#include <ctime>
#include <iomanip>    //для setw
using namespace std;

void input(int* mass,int* nom, int size)
{
	for (int i = 0; i < size; i++)
	{
		mass[i] = rand() % 100;                           //заполнение
		nom[i] = i;                           //заполнение индексов
	}
}

void output_mass(int* mass,int size)
{
	cout << "Исходный массив:" << endl;
	for (int i = 0; i < size; i++)
	{
		cout << setw(5) << mass[i] << setw(5); if ((i + 1) % 16 == 0)cout << endl;      //вывод массива
	}
	cout << endl << "________________________________________________________________________________" << endl;
}

void sortir_bubbles(int* mass, int* nom, int size)
{
	int cup;
	for (int i = 0; i < size - 1; i++)
	{
		for (int j = 0; j < size - i - 1; j++)
		{
			if (mass[j] > mass[j + 1])
			{
				cup = mass[j];
				mass[j] = mass[j + 1];
				mass[j + 1] = cup;           // сортир пузырьком имассива с индексами
				cup = nom[j];
				nom[j] = nom[j + 1];
				nom[j + 1] = cup;
			}
		}
	}
}

void output_after_sortir(int* mass, int size)
{
	cout << "Отсортированный массив:" << endl;
	for (int i = 0; i < size; i++)
	{
		cout << setw(5) << mass[i] << setw(5); if ((i + 1) % 16 == 0)cout << endl;      //вывод отсортированного массива
	}
	cout << endl << "________________________________________________________________________________" << endl;
}

void output_nom(int* nom, int size)
{
	cout << endl << "Индексы элементов после сортировки" << endl;
	for (int i = 0; i < size; ++i)
	{
		cout << setw(5) << nom[i]; if ((i + 1) % 16 == 0)cout << endl;  //индексы вывод
	}
	cout << endl << "________________________________________________________________________________" << endl;
}

void minuss(int* mass,int* minus, int size)
{
	for (int i = 0; i < size - 1; i++)
	{
		minus[i] = abs(mass[i] - mass[i + 1]);      //заполняем массив разностью пар элементов
		//cout << " " <<minus[i]<< " ";
	}
}

void min_sum(int* minus,int* nom, int min,int size)
{
	for (int i = 0; i < size - 1; ++i)
	{
		if (minus[i] < min)
		{
			min = minus[i];                   //нахождение минимальной суммы
		}
	}
}

void results(int* minus, int* nom, int size,int min)
{
	cout << "Если в массиве несколько эллементов имеют одинаковую разность, то программа выведет индексы всех этих эллементов" << endl;
	for (int i = 0; i < size - 1; ++i)
	{
		if (minus[i] == min)
		{
			cout << "Индекс 1: " << nom[i] << endl;
			cout << "Индекс 2: " << nom[i + 1] << endl;        //проверка на повторы минимальной суммы
			cout << " Разность этих эллементов= " << minus[i] << endl;
			cout << "________________________________________________________________________________" << endl;
		}
	}
}

int main()
{
	setlocale(LC_ALL, "ru");
	int *mass, *minus,*nom, size;
	srand(time(0));
	cout << "Введите количество эллементов массива" << endl; cin >> size;
	mass = new int[size]; //динам. память
	nom = new int[size]; 
	minus = new int[size - 1];          //size-1 т.к пар элементов всегда на 1 меньше чем элементов
	int min = minus[0];
	input(mass, nom, size);
	output_mass(mass, size);
	sortir_bubbles(mass, nom, size);
	output_after_sortir(mass, size);
	minuss( mass, minus, size);
	min_sum(minus, nom, min, size);
	results(minus, nom, size, min);

	cout << endl;
	system("pause");
	return 0;
}
bylbyl9tor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где я ошибся? Мaкс C# (си шарп) 31 16.02.2019 13:30
Где я ошибся в правильном ли я направление) Sopm Помощь студентам 5 31.12.2017 13:21
Подскажите где я ошибся destra1j Помощь студентам 1 25.05.2016 07:31
Транслировал код с C++, где ошибся? Crystallon Общие вопросы Delphi 4 10.05.2012 02:31
В чем я ошибся? FindComponent zotox Помощь студентам 5 29.09.2009 02:27