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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2014, 20:10   #1
Анатолий171
Пользователь
 
Регистрация: 30.06.2014
Сообщений: 80
По умолчанию C++ Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки

Помогите пожалуйста решить задачу на C++


Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки
Код:


#include <stdafx.h>
#include <stdlib.h>
#include <conio.h>

void main()
{
int mas[ 50 ][ 50 ]; 



printf( "Vvedite razmer matrici\n" );
srand( 1 );



int i, j, a, b; scanf( "%d %d", &a, &b ); 
for( i = 0; i < a; i++ )
{
for( j = 0; j < b; j++ )
{



mas[ i ][ j ] = ( double )rand() / ( RAND_MAX + 1 ) * 99 + 1; 



printf( "%3d", mas[ i ][ j ] );
}
printf("\n");
}
int x,y;



for( y = 0; y < a; y++ )
{
for ( i = 0; i < ( a - 1 ); i++ )
{
if( mas[ i ][ 0 ] > mas[ i + 1 ][ 0 ] )
{
for( j = 0 ; j < b; j++ )
{
x = mas[ i ][ j ];
mas[ i ][ j ] = mas[ i + 1 ][ j ];
mas[ i + 1 ][ j ] = x;
}
}
}
}
printf("\n");



for( i = 0; i < a; i++ )
{
for( j = 0; j < b; j++ )
{
printf( "%3d", mas[ i ][ j ] );
}
printf("\n");
}
getch();
}



Подкорректируйте его чтобы он работал, к сожалению я в этом не совсем понимаю( Пожалуйста

Последний раз редактировалось Stilet; 30.06.2014 в 20:39.
Анатолий171 вне форума Ответить с цитированием
Старый 30.06.2014, 20:30   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Он у Вас не работает?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 30.06.2014, 20:40   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Лексикографически
Это интересно как?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2014, 20:49   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Есть конечно непонятные моменты в коде...
Но особо для меня интересен...
Код:
( double )rand() / ( RAND_MAX + 1 ) * 99 + 1
Скажите, что по вашему делает этот кусок кода.

Ну и конечно поддерживаю Stilet в его вопросе.... На пальцах объясните, что вы пытаетесь сделать?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 30.06.2014, 20:49   #5
Анатолий171
Пользователь
 
Регистрация: 30.06.2014
Сообщений: 80
По умолчанию

Это значит вроде как по возрастанию тупо наверное
Да, он у меня не работает. У меня борланд c++ 3.1
Я переделал вот так
Код:

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

void main()
{
	int mas[ 50 ][ 50 ]; 
	
	//инициализируем массив
	
	cout<< "Vvedite razmer matrici\n";
	srand( 1 );

	//получаем от пользователя реальные размеры массива
	
	int i, j, a, b; cin>> "%d  %d", &a, &b ; 
	for( i = 0; i < a; i++ )
	{
		for( j = 0; j < b; j++ )
		{

			//заполняем матрицу с помощью генератора псевдослучайных чисел
			
			mas[ i ][ j ] = ( double )rand() / ( RAND_MAX + 1 ) * 99 + 1; 
			
			//выводим исходную матрицу
			
			cout<< "%3d", mas[ i ][ j ] ;
		}
		cout<<"\n";
	}
	int x,y;
	
	//применяем пузырьковый метод сортировки 
	
	for( y = 0; y < a; y++ )
	{
		for ( i = 0; i < ( a - 1 ); i++ )
		{
			if( mas[ i ][ 0 ] > mas[ i + 1 ][ 0 ] )
			{
				for( j = 0 ; j < b; j++ )
				{
					x = mas[ i ][ j ];
					mas[ i ][ j ] = mas[ i + 1 ][ j ];
					mas[ i + 1 ][ j ] = x;
				}
			}
		}
	}
	cout<<"\n";

	//выводим получившуюся матрицу на экран
	
	for( i = 0; i < a; i++ )
	{
		for( j = 0; j < b; j++ )
		{
			cout<< "%3d", mas[ i ][ j ] ;
		}
		cout<<"\n";
	}
	getch();
}
У МЕНЯ ЗАРАБОТАЛ , но.... Поле запуска просто ошибка и виснет
Что мне делать

Последний раз редактировалось Stilet; 30.06.2014 в 21:17.
Анатолий171 вне форума Ответить с цитированием
Старый 30.06.2014, 20:52   #6
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Анатолий171 тут главное не суетиться... Решать задачу по шагам...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 30.06.2014, 20:53   #7
Анатолий171
Пользователь
 
Регистрация: 30.06.2014
Сообщений: 80
По умолчанию

Ну да, но я не очень силен в этом...((( И я не знаю что нужно делать дальше , подскажите пожалуйста



И правильно ли? Задача ведь выполняет условия ?
Анатолий171 вне форума Ответить с цитированием
Старый 30.06.2014, 20:54   #8
Анатолий171
Пользователь
 
Регистрация: 30.06.2014
Сообщений: 80
По умолчанию

Может быть каких-то библиотек не хватает из этих?

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <clocale>
#include <ctime>
#include <algorithm>
Анатолий171 вне форума Ответить с цитированием
Старый 30.06.2014, 21:05   #9
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Пробуйте, код компилируется... ?

Код:
#include <cstdlib>
#include <ctime>
#include <iostream>

using namespace std;

int main()
{	
	const int MAX = 50;
	int mas[MAX][MAX];
	int N, M;			// Размер матрицы
	int K;				// Количество элементов, которые нужно упорядочить


	cout << endl << " Enter the matrix size: ";
	cout << "\n N - ";
	cin >> N;
	cout << " M - ";
	cin >> M;
	
	srand((unsigned)time(NULL));
	cout << "\n Array: " << endl;
	for(int i = 0; i < N; i++) {
		for(int j = 0; j < M; j++) {
			mas[i][j] = rand()%20 + 1;
			printf(" [%2d]", mas[i][j]);
		}
		cout << endl;
	}
	system("pause");
}
Вообще вы на верном пути... Серьезна!
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 30.06.2014, 21:14   #10
Анатолий171
Пользователь
 
Регистрация: 30.06.2014
Сообщений: 80
По умолчанию

using namespace std;


У меня не работает эта фигня...


И они у меня в борланд должны быть с точками , а по другом он не понимает
#include <iostream.h>

Последний раз редактировалось Анатолий171; 30.06.2014 в 21:31.
Анатолий171 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочить строки матрицы по неубыванию значений наименьших элементов строк PASCAL sanji2010 Помощь студентам 1 19.05.2014 23:30
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке. Pascal Леви Помощь студентам 6 24.01.2014 13:08
Найти наименьший элемент в каждой строке матрицы и упорядочить строки по возрастанию этих элементов winrey Паскаль, Turbo Pascal, PascalABC.NET 1 21.10.2012 15:20