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

Дана матрица размера MxN - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Катерино4ка
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 38
01.11.2013, 23:36     Дана матрица размера MxN #1
Помогите пожалуйста, не могу найти ничего подобного для своей задачи.. Дана матрица размера MxN.Преобразовать матрицу, поменяв местами минимальный и максимальный элемент в каждом столбце.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
01.11.2013, 23:38     Дана матрица размера MxN #2
Катерино4ка, чего подобного? Объясните, что вы не понимаете в данной задаче? Как поменять местами элементы или как найти минимальный и максимальный в столбце?
Катерино4ка
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 38
01.11.2013, 23:42  [ТС]     Дана матрица размера MxN #3
и то и другое..
преподаватель толком не объясняет как делать, пыталась найти на форуме что то подобное, но без результатов...
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
01.11.2013, 23:44     Дана матрица размера MxN #4
Катерино4ка, поменять значения местами можно либо функцией swap, которая меняет значение двух переменных местами. А поиск сейчас примерно распишу
Катерино4ка
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 38
01.11.2013, 23:48  [ТС]     Дана матрица размера MxN #5
представляете как сделать это?

Добавлено через 1 минуту
если будет не сложно можете прислать весь код решения задачи?
буду очень и очень благодарна!!
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
01.11.2013, 23:49     Дана матрица размера MxN #6
Катерино4ка,
C++
1
2
3
4
5
6
7
8
9
10
11
for (int i = 0; i < m; i++)
{
    int max = 0;
    int min = 0;
    for (int j = 0; j < n; j++)
    {
        if (max < a[j][i]) max = j;
        if (min > a[j][i]) min = j;
    }
    swap(a[max][i],a[min][i]);
}
Вроде нигде не ошибся, тестите

Добавлено через 49 секунд
Катерино4ка, а вот полный код не хочу. Ведь у нас задача вас научить, а не написать вам готовую программу
Катерино4ка
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 38
02.11.2013, 00:02  [ТС]     Дана матрица размера MxN #7
можно сделать исключение?
просто сижу разбираюсь с другой программой, завтра уже нужно с утра ехать и сдавать мне эти работы..
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
02.11.2013, 00:18     Дана матрица размера MxN #8
Катерино4ка,

Не по теме:

вы не поверите, сколько уже исключений делать пришлось...

Simak63
29 / 29 / 9
Регистрация: 19.02.2011
Сообщений: 135
02.11.2013, 00:23     Дана матрица размера MxN #9
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
const n=4; m=4;   //задаем размеры
 
int main()
{
int i,j;
   int a[n][m];
   int max, min, p, maxi, maxj, mini, minj;
 
cout<<"введите матрицу";
for ( i=1; i<n; i++)
for ( j=1; j<m; j++)
cin >> a[i][j];
 
max=-32768;  {задаем значения максимуму и миниму, т.к. ищем на каждой строке }
min=32767;
 
for ( i=1; i<n; i++)
 
 for ( j=1 j<m; j++)
 
  if (a[i][j] > max)    //условия поиска максимума
   {
    max=a[i][j];
    maxi=i;          //запоминаем индексы максимума
    maxj=j;
   }
 
  if (a[i][j] < min)   //условия поиска минимума
   {
    min=a[i][j];
    mini=i;      //запоминаем идексы минимума
    minj=j;
   }
 
p=a[maxi][maxj];       //меняем местами максимум с минимумом
a[maxi][maxj]=a[mini][minj];
a[mini][minj]=p;
max=-32768;      //обнуляем значения макс и мин, дабы они находились в новой строке
min=32767;
 
//выводим
for (i=1; i<n; i++)         
 
for (j=1; j<m; j++)
cout << a[i][j];
 
return 0;
}
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
02.11.2013, 00:24     Дана матрица размера MxN #10
Simak63, что то вы намудрили с поиском минимума и максимума по моему. Можно было их присвоить первому элементу столбца
Катерино4ка
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 38
02.11.2013, 00:34  [ТС]     Дана матрица размера MxN #11
swap выдает за ошибку, его в начале кода объявлять нужно как то?

Добавлено через 3 минуты
не могли бы и библиотеки скинуть пожалуйста?
код целиком?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
02.11.2013, 00:37     Дана матрица размера MxN #12
Цитата Сообщение от Folko Посмотреть сообщение
Вроде нигде не ошибся, тестите
Цитата Сообщение от Folko Посмотреть сообщение
int max = 0;
* * int min = 0;
Цитата Сообщение от Folko Посмотреть сообщение
if (max < a[j][i]) max = j;
* * * * if (min > a[j][i]) min = j;
ты индексы со значениями сравниваешь?

Добавлено через 1 минуту
Цитата Сообщение от Simak63 Посмотреть сообщение
max=-32768; *{задаем значения максимуму и миниму, т.к. ищем на каждой строке }
min=32767;
инт давно уже 4 байтный а у тебя значения 2 байтного
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
02.11.2013, 00:38     Дана матрица размера MxN #13
ValeryS, вот, все таки ошибся(
исправленный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
for (int i = 0; i < m; i++)
{
    int max = 0;
    int min = 0;
    for (int j = 0; j < n; j++)
    {
        if (a[max][i] < a[j][i]) max = j;
        if (a[min][i] > a[j][i]) min = j;
    }
    swap(a[max][i],a[min][i]);
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
02.11.2013, 00:39     Дана матрица размера MxN #14
вот запись максима и минимума целочисленого в независимости разрядов
C++
1
2
int min=1<<(sizeof(int)*8-1);
int max=min-1;
Катерино4ка
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 38
02.11.2013, 00:42  [ТС]     Дана матрица размера MxN #15
если не сложно пришлите хотя бы начало кода, с библиотеками...
Будьте милосердны))
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
02.11.2013, 00:44     Дана матрица размера MxN #16
Катерино4ка,
C++
1
2
#include <iostream>
using namespace std;
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
02.11.2013, 00:44     Дана матрица размера MxN #17
Folko,
интересное решение
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
02.11.2013, 00:46     Дана матрица размера MxN #18
ValeryS,

Не по теме:

да, порой приходят в голову хорошие идеи

Катерино4ка
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 38
02.11.2013, 00:46  [ТС]     Дана матрица размера MxN #19
я это прописала уже давно, но swap не понимает, за ошибку выдает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2013, 00:47     Дана матрица размера MxN
Еще ссылки по теме:

C++ Дана матрица размера MxN. Поменять местами столбец с номером N и первый из столбцов, содержащих только отрицательные элементы.
перевести программу из паскаля в с++ (для среды Borland C++). Дана матрица размера MxN. Поменять местами столбец с номером N и первый из столбцов C++
C++ Дана матрица размера MxN. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
02.11.2013, 00:47     Дана матрица размера MxN #20
Цитата Сообщение от Folko Посмотреть сообщение
C++
1
2
3
4
5
for (int j = 0; j < n; j++)
 {
    if (a[max][i] < a[j][i]) max = j;
    if (a[min][i] > a[j][i]) min = j;
}
только сравнивай со следующей ячейки, смысл само с собой сравнивать?
C++
1
for (int j = 1; j < n; j++)
Yandex
Объявления
02.11.2013, 00:47     Дана матрица размера MxN
Ответ Создать тему
Опции темы

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