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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2014, 21:20   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
#include <stdlib.h>
#include <time.h>


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


	printf(" Enter the matrix size:\n N - ");
	scanf("%d",&N);
	printf("  M - ");
	scanf("%d",&M);
	
	srand((unsigned)time(NULL));
	printf("\n Array:\n");
	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]);
		}
		printf("\n");
	}
	system("pause");
}
Так лучше?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2014, 21:21   #12
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Цитата:
Сообщение от Анатолий171 Посмотреть сообщение
using namespace std;


У меня не работает эта фигня...
Страуструп в этот момент начал заикаться...
Это очень нужная ф...ня Про пространства имен слышали что-нибудь...?
По поводу сортировки двумерного массива. Вот ссылка... Надеюсь поможет.
http://iguania.ru/algoritmi-programm...ortirovka.html
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 30.06.2014 в 21:25.
Bugrimov вне форума Ответить с цитированием
Старый 30.06.2014, 21:27   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Страуструп в этот момент начал заикаться...
Ха-ха! Представляю )))
Цитата:
Э...Э...Это оч...ч...чень н...нужная ф...ня П...П...П...Про пространства имен с...с...слышали что-ни...ни...нибудь...?
Бедняга Страуструп Дело всей его жизни котику под хвостик.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2014, 21:34   #14
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ха-ха! Представляю )))

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

Код:
#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 >> 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<< 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<< mas[ i ][ j ] ;
}
cout<<"\n";
}
getch();
}
Программа зависает(
Программа зависает , помогите , что мне делать?
У меня борланд C++ 3.1
он никакие принтф не понимает, через cout cin понимает

Последний раз редактировалось Stilet; 30.06.2014 в 22:42.
Анатолий171 вне форума Ответить с цитированием
Старый 30.06.2014, 22:43   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
У меня борланд C++ 3.1
он никакие принтф не понимает, через cout cin понимает
Неожиданно...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2014, 22:56   #17
Анатолий171
Пользователь
 
Регистрация: 30.06.2014
Сообщений: 80
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
 
   int mas[ 50 ][ 50 ]; 

   printf( "Vvedite razmer matrici\n" );

   srand( 624 );
 
    //srand( 1 );
 
    int i, j, a, b; 
 
	scanf( "%d  %d", &a, &b ); 
 
	//a = 20; b = 4;
 
	//a = 7; b = 4;
 
 
 
    for( i = 0; i < a; i++ )
 
    {
 
        for( j = 0; j < b; j++ )
 
        {
 
            mas[ i ][ j ] = ( int )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");
 
    }
 
	system("pause");
 
	return 0;
 
}

Он понял принтф


Но теперь меня мучают 2 предупреждения


NO module definition file specified usingdefaults

undefined symbol_system in module и путь к файлу моему



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 01.07.2014 в 08:29.
Анатолий171 вне форума Ответить с цитированием
Старый 01.07.2014, 08:14   #18
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Это интересно как?
Это сравнение в зависимости от позиции элементов.
То есть если есть матрица
|1 2|
|5 6|
|4 7|

То будет
|1 2|
|4 7|
|5 6|
То есть будет сверка строк только по первому элементу последовательности без учета остальных (в нашем случае 7 больше 6, но все равно 4 7 идет раньше, дальше первого элемента сравнение не производится). Лексикографически - значит, что в сравнении участвует позиция элементов таблицы/матрицы по заранее оговоренному правилу. Изначально применялось при принятии какого-то решения на основе большого числа факторов (при этом одно решение в чем-то может быть лучше другого, а в чем-то хуже). Например, что выбрать - с++ или делфи? Можно свести все параметры обоих языков в таблицу, отсортировать по степени важности и провести сравнение по числовым характеристикам.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 01.07.2014, 09:03   #19
Анатолий171
Пользователь
 
Регистрация: 30.06.2014
Сообщений: 80
По умолчанию

На c++


Вы можете мне помочь с этим? Сделать как нужно так как вы сказали, пожалуйста, просто я в этом почти не шарю
Анатолий171 вне форума Ответить с цитированием
Старый 01.07.2014, 09:05   #20
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Че там шарить? Заводишь еще один массивчик и складываешь в него номера строк в нужном порядке. Физически перемещать строки в матрице глупо. Номера строк определяешь сортировкой первых элементов (тут если тебе сложно то, можно еще массив заюзать под сортировку первых элементов). А вот на экран выводишь строки руководствуясь уже полученным порядком строк в одномерном массиве.

Пример.
То есть если есть исходная матрица
1. |1 2|
2. |5 6|
3. |4 7|

То будет:
Исходная матрица (не изменится, так как глупо перемещать данные в памяти в данном случае и чем больше у тебя размеры исходной матрицы тем медленней перемещать строки)
|1 2|
|5 6|
|4 7|

Результирующий массив
|1|
|3|
|2|
В последнем массиве выводишь порядок следования строк исходного массива. Далее руководствуясь этими данными выводишь строки на экран в нужной последовательности.

Вывод на экран
шаг1
|1 2| - так как в результирующем массиве стоит первая строка (хотя при переложении на язык программирования надо помнить что индексация может быть от 0, а не от 1).

шаг2
|4 7|, так результирующем массиве стоит 3 строка

шаг3
|5 6|, так как в результирующем массиве стоит 2 строка
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 01.07.2014 в 09:13.
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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