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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
suv121
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
#1

сортировка двумерного массива - C++

17.04.2010, 18:29. Просмотров 1432. Ответов 17
Метки нет (Все метки)

помоги отсортировать двумерный массив как в примере
пример: 2 4 6 1 2 3
1 5 9 4 5 6
7 8 3 отсортировался в 7 8 9
вот мои наработки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include<stdio.h>
 
void main()
{
    int A[3][3],i,j;
    printf("vvedute elementu \n");
    //ввод массива//
    for(i=0;i<3;i++){
        for(j=0;j<3;j++)
        {
            printf("A[%d][%d]=", i,j);
            scanf("%d",&A[i][j]);}}
    //сортировка массива//
 
 
//вывод ввиде матрицы//
        for(i=0;i<3;i++)
            for(j=0;j<3;j++)
                printf("%d", A[i][j]);}
Добавлено через 18 минут
пример:
2 4 5
1 3 7
8 9 6
в
1 2 3
4 5 6
7 8 9
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2010, 18:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос сортировка двумерного массива (C++):

Сортировка двумерного массива - C++
Input sample: 4 10 20 30 7 30 00 23 59 59 13 30 30 Output sample: 7 30 0 10 20 30

сортировка двумерного массива - C++
#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; int i,j,n,k,co,cp; ...

Сортировка Двумерного массива - C++
Создать двумерный массив. Отсортировать каждую строку по возрастанию. Одномерный смог отсортировать а.двух мерный слабо =( ...

Сортировка двумерного массива - C++
Добрый день. Дано было такое задание . &quot;Даны два числа n и m. Создать матрицу размером и заполнить случайными числами в диапазоне ....

Сортировка двумерного массива - C++
Подскажите как отсортировать двумерный массив по возрастанию. Например дан такой массив двумерный: 9 7 4 1 2 3 5 5 5 Должен...

сортировка двумерного массива - C++
Помогите пожалуйста упорядочить двумерный массив состоящий из вещественных элементов по возрастанию элементов первого столбца, при этом все...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
17.04.2010, 22:31 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <conio.h>
 
#define H 3
#define W 3 
int main(){
    int matrix[H][W] = {
    {2,4,5},
    {1,3,7},
    {8,9,6}
    };
int i,j;
 
 
//ñîðòèðóåì
int *t = (int*)matrix;
for( i = 0 ; i < H*W-1 ; i++ ){
    for( j = i+1 ; j < H*W ; j++){
        if(t[j]<t[i]){
                int tmp = t[i];
        t[i]=t[j];
        t[j] = tmp;
        }
    }
}
for( i = 0 ; i < H ; i++ ){
    for( j = 0 ; j < W ; j++){
    printf("%d " ,matrix[i][j]);
    }
printf("\n");
}
 
getch();
return 0;
}
2
suv121
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
18.04.2010, 11:46  [ТС] #3
спасибо , но можно ещё вариант без указателей
и что делается на 16 строчке ????
0
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
18.04.2010, 12:22 #4
suv121, в 16 строчке создается указатель на матрицу, как на одномерный массив. И больше указателей явно нигде не используется.
0
suv121
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
18.04.2010, 12:29  [ТС] #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdafx.h"
#include<stdio.h>
#include <conio.h>
 
int main()
{
int A[3][3],i,j;
printf("vvedute elementu \n");
//ввод массива//
for(i=0;i<3;i++){
for(j=0;j<3;j++)
{
printf("A[%d][%d]=", i,j);
scanf("%d",&A[i][j]);}}
//сортировка массива//
int *t = (int*)A;
for( i = 0 ; i < 8; i++ ){
        for( j = i+1 ; j < 9; j++){
                if(t[j]<t[i]){
                int tmp = t[i];
                t[i]=t[j];
                t[j] = tmp;
                }
        }
}
 
 
 
 
//вывод ввиде матрицы//
for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%d", A[i][j]);}}
а что у меня не так ???? после того как я ввожу массив , программа закрывается
0
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
18.04.2010, 12:33 #6
suv121, нужно остановить выполнение, используя, например, system("pause") или getch(). Да, и пользуйтесь тегами выделения кода...
0
suv121
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
18.04.2010, 12:38  [ТС] #7
а как тегами пользоваться для выделения???
и как именно остановить выполнение???
0
Jony Wocker
45 / 45 / 2
Регистрация: 19.11.2009
Сообщений: 362
18.04.2010, 12:39 #8
Зачем вы используете указатели?
0
suv121
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
18.04.2010, 12:42  [ТС] #9
мне так подсказали , а как без указателей???
0
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
18.04.2010, 12:43 #10
suv121, остановить выполнение, поставив перед закрывающей скобкой system("pause"); или getch();. Для того, чтобы выделить код, нажмите на кнопку с надписью "C" или "C++" над полем ввода сообщения.


Jony Wocker, а как сделать проще без указателей?
0
suv121
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
18.04.2010, 12:46  [ТС] #11
а можете показать где именно паузу ставить , а то я ставил и всё равно после того как ввёл массив , всё закрывается
0
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
18.04.2010, 12:48 #12
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdafx.h"
#include<stdio.h>
#include <conio.h>
 
int main()
{
int A[3][3],i,j;
printf("vvedute elementu \n");
//ввод массива//
for(i=0;i<3;i++){
for(j=0;j<3;j++)
{
printf("A[%d][%d]=", i,j);
scanf("%d",&A[i][j]);}}
//сортировка массива//
int *t = (int*)A;
for( i = 0 ; i < 8; i++ ){
for( j = i+1 ; j < 9; j++){
if(t[j]<t[i]){
int tmp = t[i];
t[i]=t[j];
t[j] = tmp;
}
}
}
//вывод ввиде матрицы//
for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%d", A[i][j]);}
 
system("pause"); // Вот оно
 
}
1
suv121
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
18.04.2010, 12:54  [ТС] #13
теперь не компилируется
0
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
18.04.2010, 13:00 #14
suv121, а, добавьте заголовок <stdlib.h>. И еще как-то странно у вас в конце выводится массив, добавьте пробелы и в конце внешнего цикла перенос строки
0
suv121
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
18.04.2010, 13:07  [ТС] #15
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "stdafx.h"
#include<stdio.h>
#include <conio.h>
 
int main()
{
int A[3][3],i,j;
printf("vvedute elementu \n");
//ввод массива
for(i=0;i<3;i++){
for(j=0;j<3;j++)
{
    printf("A[%d][%d]=", i,j);
  scanf("%d",&A[i][j]);}
}
//сортировка массива
int *t = (int*)A;
for( i = 0 ; i < 8; i++ ){
for( j = i+1 ; j < 9; j++){
if(t[j]<t[i]){
int tmp = t[i];
t[i]=t[j];
t[j] = tmp;
}
}
}
//вывод ввиде матрицы//
for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%d ", A[i][j]);
printf("\n");} 
getch(); }
вот такой код теперь работает
помогите теперь написать вариант без указателей
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2010, 13:07
Привет! Вот еще темы с ответами:

Сортировка двумерного массива - C++
Есть задачка с 3-ох пунктов. Первый я сделал(создать многомерный целочисельный масив заданый пользователем). А вот с двумя никак не могу...

Сортировка двумерного массива... - C++
Дано: одномерный массив А заполненный случайными числами одномерный массив В заполненный случайными числами двумерный массив С...

Сортировка двумерного массива - C++
Дан двумерный массив, размерностью N на N. Надо взять отдельно каждую строку и каждый столбец, отсортировать по возрастанию и сравнить с...

сортировка двумерного массива - C++
Помогите с задачей,плииз! упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.04.2010, 13:07
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru