Форум программистов, компьютерный форум CyberForum.ru

проблемы с сортировкой пузырьком - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Иерархическое дерево. Начало пути http://www.cyberforum.ru/cpp-beginners/thread804456.html
Здравствуйте!!! Я перерыл много учебников и форумов и везде пишут о бинарных деревьях. В них я более менее разобрался, а вот как создать дерево, в котором может быть более 2 сыновей. У меня задание: написать программу, определяющую является ли узел i предком узла j. Программа у пользователя запрашивает узлы дерева в порядке прямого обхода.
C++ вызвать неперегруженный оператор при наличии перегруженного привет всем. возникла такая проблема: есть два объекта одного класса и перегруженный оператор=. одним из полей этих объектов является указатель на указатель(квадратная матрица порядка n). в теле перегруженного орератора проверяется, одинаковы ли размеры этих матриц. если нет, то нужно перевыделить память и выполнить присвоение. так вот, возможно ли внутри этого перегруженного оператора после... http://www.cyberforum.ru/cpp-beginners/thread804455.html
Найти дружественные числа (создавал в MingwStudio) C++
Подскажите что не так #include <iostream.h> int sumdel(a) { int i,s; s=0; for(i=1;i<=a/2;i++) {if(a%i==0) s=s+i; } return s; }
C++ Методы вызываются через указатель на объект класса; Как компилятор определяет, какой из методов надо вызвать?
Ребята, если вникать, то вообще ничё непонятно. Вот смотрите: пусть у нас есть абстрактный класс abstr (abstr.h) и в нём определено, например 10 функций виртуальных функции. Эти функции реализованы в каком-то статическом классе stats (файлы stats.h и stats.cpp). И пусть мы вызываем например две из них в main.cpp, вот так: //main.cpp #include <windows.h> #include <stdio.h> #include "abstr.h"...
C++ кодировка русского шрифта http://www.cyberforum.ru/cpp-beginners/thread804419.html
/*вроде в консоли выходят русский шрифт, но когда выводится новый массив то выходят какие каракули) посмотрите пожалуйста кто умеет*/ #include <iostream> using namespace std; struct WORKER { char surname; // фамилия char initials; // инициалы char post; // должность int date; // год рождения
C++ Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как нужно построить эти классы, чтобы получилась грамотная иерархия? Как вообще должен выглядеть класс связей между таблицами? Я долго билась над этим, но пока получился только трехмерный динамический массив. Вот код, я его забросила, очевидно, что это бред... подробнее

Показать сообщение отдельно
bubliq
 Аватар для bubliq
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 17
10.03.2013, 10:51     проблемы с сортировкой пузырьком
собственно сабж
проблема заключается в том, что программа сортирует ЧАСТЬ массива. Допустим, надо отсортировать каждый столбец по уменьшению значения суммы цифр каждого элемента. Так программа правильно отсортировывает 14 элементов из 16, а 2 стоят в неправильном порядке. Не могу понять, наверное где-то в цикле ошибка. Помогите, люди!

Код
// moiproject.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "iostream"
#include <time.h>

using namespace std;
int mas[100][100];
int i,j,k,n,m,l;
int arr[100][100];
int srav1=0;
int per1=0;
int Sum ( int N )
{
	int d, sum = 0;
	while ( N != 0 )
	{
		d = N % 10;
		sum = sum + d;
		N = N / 10;
	}
	return abs(sum);
}

int _tmain(int argc, _TCHAR* argv[])
{
cout<< ("Vvedote strok:\n");
	scanf("%4i",&m);//кол-во строк
	cout<< ("Vvedote stolbcov:\n");
	scanf("%4i",&n);// кол-во столбцов
	
	 srand(time(0));
	 for (i=0; i<m; i++) 
	{
		for (j=0; j<n; j++)
		{

			mas[i][j]=rand()%99-50; 
			
		}
	}
	 //Заполняем массив arr данными из mas
	for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{
			arr[i][j]=mas[i][j];
		}
	}

  for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{
			printf("%4i", arr[i][j]);
		}
		cout<<"\n";
	}
	cout<<"\n";
   printf("_____________________________\n");
	for (j=0 ; j<n; j++)//j-stolbec//
		{
		for (k=0 ; k<m-1; k++)//i-строчка//
		{
		  for (i=0; i<m-k-1; i++)
			{
				if (Sum(arr[i][j])<(Sum(arr[i+1][j])))
				{
					int temp=arr[i][j];
					arr[i][j]=arr[i+1][j];
					arr[i+1][j]=temp;
					per1++;
					l++;
					
				}
             srav1++;
			
		  }
		if (l==0) 
		{break;}
		l=0;
		l--;
		}
	l=k;
	}
	for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{
			printf("%4i", arr[i][j]);
		}
		cout<<"\n";
	}
	cout<<"\n";
	printf("Kol-vo perestanovok - ");
	printf("%i\n",per1);
	printf("Kolitchstvo sravnenii- ");
	printf("%i\n",srav1);
system("pause");
	}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru