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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2013, 22:57   #1
bodyart13
 
Регистрация: 05.01.2013
Сообщений: 3
По умолчанию не могу доработать програму с++

есть программа которая сортирует массив методом пузырька, мне надо вместо этого метода, использовать метод вставки, я не знаю как прописать этот метод и как его использовать в этой программе, помогите.
Вот мой код. Сортировка тут void Sort().
Код:
#include <stdafx.h>
#include <iostream>
#include <conio.h>
#include <iomanip>

using namespace std;
const int n=5;
class Matrix
	{
	private:
		double M[n][n];
	public:
		void Input_Matrix()
		{
			for (int i=1; i<=n; i++)
			{
				for (int j=1; j<=n; j++)
				{
					cout<<"["<<i<<"]["<<j<<"]=";
				 	cin>>M[i][j];
				}
			}
		}
		void Output_Matrix()
		{
			for (int i=1; i<=n; i++)
			{
				for (int j=1; j<=n; j++)
				{
					cout<<setw(5)<<M[i][j]<<" ";
				}
				cout<<"\n";
			}	
		}
		void Sort()
		{
			double value;
			for(int k=1; k<=n; k++)
			{
				for (int i=1; i<n; i++)
				{
					for (int j=n; j>=i+1; j--)
					{
						if (M[k][j]>M[k][j-1])
						{
							value=M[k][j];
							M[k][j]=M[k][j-1];
							M[k][j-1]=value;
						}
					}
				}
			}
		}

	void function()
		{
			int i,j;
			double s=0, d;
			for(j=1; j<=n; j++)
				{
					d=1;
					cout<<"Dobutok v "<<j<<"omu ryadi - ";
					for(i=n; i>n-j; i--)
						{
							d*=M[i][j];
						}
					cout<<d<<endl;
					s+=d;
				}	
			cout<<"Seredne arifm = "<<s/(n);
		}
};
void _tmain (void)
	{
		Matrix A;
		cout<<"Vvedit masiv"<<endl;
		A.Input_Matrix();
		cout<<"Vash masiv"<<endl<<endl;;
		A.Output_Matrix();
		cout<<"\n"<<endl;
		cout<<"Vidsortovana Matrica"<<endl<<endl;;
		A.Sort();
		A.Output_Matrix();
		cout<<endl;
		A.function();
		getch();
	}

Последний раз редактировалось bodyart13; 06.03.2013 в 23:01.
bodyart13 вне форума Ответить с цитированием
Старый 06.03.2013, 23:07   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Вот этот метод..........

Код:
void InsertSort(int *a, int n)
{
   int buf, i, j;
   for (i = 1; i < n; i++)
   {
      buf = a[i];
      j = i - 1;
      while (j >= 0 && a[j] > buf)
      {
         a[j+1] = a[j];
         j--;
      }
      a[j+1] = buf;
   }
}
Думаю адаптировать под Ваш код будет не сложно..
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 06.03.2013 в 23:24.
Bugrimov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу доработать dagggggger Паскаль, Turbo Pascal, PascalABC.NET 8 17.12.2010 22:25
не могу сделать програму на Си vova_makarovych Помощь студентам 2 20.10.2010 22:10