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

Поменять строку и столбец. - C++

Восстановить пароль Регистрация
 
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
09.02.2010, 15:58     Поменять строку и столбец. #1
Массив 5*6.
Поменять местами строку и столбец в которых находится минимальны элемент.

Вот не могу понять алгоритма Обмена строки и столбца. Подскажите.? плз.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2010, 15:58     Поменять строку и столбец.
Посмотрите здесь:

Поменять местами строку с максимальный элемент и строку с минимальным элементом матрицы C++
C++ В заданном двумерном массиве n*m поменять местами строку с номером k столбец с номером p этого массива
C++ Поменять местами строку и столбец в матрице
Поменять местами первую строку и строку сумма элементов которой минимальна C++
C++ В заданной числовой вещественной матрице размерности N*N поменять местами K-ую строку и L-ую строку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.02.2010, 16:06     Поменять строку и столбец. #2
Может, в задании ошибка? У строки и столбца же размерности разные, их местами поменять никак не получится
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
09.02.2010, 16:40  [ТС]     Поменять строку и столбец. #3
да, действительно)

Добавлено через 4 минуты
Но все равно не работает(


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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 #include <stdafx.h>
#include <stdlib.h>
#include "time.h"
#include <conio.h>
int main()
{
int i, j, n;
int mas[6][6];
       srand(time(0));
                   for(i = 0; i < 6; i++)
                   {
                     for(j = 0; j < 6; j++)
                     {
                       mas[i][j]= rand()%100;
                     }
                   }
 
               
        
 
   
 int x=0; int y=0;
    for(i = 0; i < 5; i++)
    {
        for(j=0; j<5; j++)
        {
            printf("%d\t", mas[i][j]);
        }
 
        puts("\n");
    }
        for(i = 0; i < 5; i++)
           for(j=0;j < 5; j++)
        {
           if(mas[x][y]<mas[i][j])
           {x=i;
            y=j;
 
           }
        }
 
    char tmp;
    for(i = 0; i < 5; i++)
    {
            tmp = mas[i][x -1];
            mas[i][x - 1] = mas[i][y - 1];
            mas[i][y - 1] = tmp;
 
    }
 
 
         puts("\n"); puts("\n");
    
    for(i = 0; i < 5; i++)
    {
        for(j=0; j<5; j++)
        {
            printf("%d\t", mas[i][j]);
        }
 
        puts("\n");
    }
 
 
getch();
return (0);
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.02.2010, 17:02     Поменять строку и столбец. #4
А зачем tmp объявлять как char?

Добавлено через 4 минуты
Цитата Сообщение от BOR1K Посмотреть сообщение
for(i = 0; i < 5; i++)
for(j=0;j < 5; j++)
{
if(mas[x][y]<mas[i][j])
{x=i;
y=j;
}
}
char tmp;
for(i = 0; i < 5; i++)
{
tmp = mas[i][x -1];
mas[i][x - 1] = mas[i][y - 1];
mas[i][y - 1] = tmp;
}
И объясни, пожалуйста, что ты делаешь здесь. Если у тебя x или y равняются нулю, то запись mas[i][x -1], как и mas[i][y - 1], приведет к ошибке

Добавлено через 7 минут
Кажется я понял, попробуй такой код (меняет местами элементы столбца x и строки y):
C++
1
2
3
4
5
6
7
8
    int tmp;
    for(i = 0; i < 5; i++)
    {
            tmp = mas[i][x];
            mas[i][x] = mas[y][i];
            mas[y][i] = tmp;
 
    }
Yandex
Объявления
09.02.2010, 17:02     Поменять строку и столбец.
Ответ Создать тему
Опции темы

Текущее время: 11:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru