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

В Матрице A(N,M) расположить сверху-вниз строки - C++

Восстановить пароль Регистрация
 
KulguninArtur
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 4
23.05.2013, 12:40     В Матрице A(N,M) расположить сверху-вниз строки #1
нужно в матрице A(N,M) расположить сверху-вниз строки в порядке убывания их максимальных элементов и разместить их в матрице X(N,M).

Пытаюсь писать сам, но постоянно ошибки синтаксиса, не понимаю принципа и алгоритма. На С толком не работал. Разве что Arduino SDK (на C и Java), но там свои библиотеки.

Вот что пишут на локальных форумах:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void Funct(int** matr, int n, int m)
{
    int i, j, max;
    int A[n][n];
    int i=1,j,k,p=n/2;
    for(i = 0; i < n; ++i)
    {
        max ^= max;
        for(j = 1; j < m; ++j)
 
 for(k=1;k<=p;k++) {
 for (j=k-1;j<n-k+1;j++) A[k-1][j]=i++;
 for (j=k;j<n-k+1;j++) A[j][n-k]=i++;
 for (j=n-k-1;j>=k-1;--j) A[n-k][j]=i++;
 for (j=n-k-1;j>=k;j--) A[j][k-1]=i++;
 
  while(i1 < Pen && j2 < Pen)
        {
            sum1 += matrix[i1][j1];
            sum2 += matrix[i2][j2];
}
На местных форумах мне вообще подобный бред отписывали. Не понимаю причем тут замена от первого элемента до последнего в строчке?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2013, 12:40     В Матрице A(N,M) расположить сверху-вниз строки
Посмотрите здесь:

C++ в матрице, строку где все числа четные, расположить в обратном порядке.
Поменять местами первую строку и строку, в которой находится первый нулевой элемент. Принять, что массив просматривается слева направо и сверху вниз. C++
C++ Двумерный массив заполняется слева направо и сверху вниз
У меня задача,в матрице,заменить первый отрицательный элемент максимальным элементом. Проходить по матрице слева направо,сверху вниз C++
Строки (Расположить слова строки в порядке, обратном исходному) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KulguninArtur
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 4
03.06.2013, 09:55  [ТС]     В Матрице A(N,M) расположить сверху-вниз строки #2
Помогите с алгоритмом пожалуйста.
Naudiz
 Аватар для Naudiz
14 / 12 / 1
Регистрация: 04.11.2011
Сообщений: 137
03.06.2013, 12:53     В Матрице A(N,M) расположить сверху-вниз строки #3
Написал, как можно проще:
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int i, j, n, m, A[n][m], X[n][m], max[n]; //ГђГ*çìåð Г¬Г*òðèöû
    cout << "Strok: "; cin >> n;
    cout << "Stolbtsov: "; cin >> m;
    for (i=0; i<n; i++) for (j=0; j<m; j++) cin >> A[i][j]; //Г‡Г*ïîëГ*ГҐГ*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ*(Г¬Г*òðèöû)
    for (i=0; i<n; i++) //Ïîèñê Г*Г*èáîëüøåãî ýëåìåГ*ГІГ* ïîñòðî÷Г*Г®
    {   
      j=0; max[i]=A[i][j];
      for (j=0; j<m; j++) if (A[i][j]>max[i]) max[i]=A[i][j]; 
    }
    int mem[i],k;
    for (i=0; i<n; i++) mem[i]=max[i]; //êîïèïðîâГ*Г*ГЁГҐ èñõîäГ*îãî Г°Г*ñïîëîæåГ*ГЁГї Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*ûõ ГЅГ«-òîâ
    for (i=0; i<n; i++) //ñîðòèðîâêГ* ГЇГ® óáûâГ*Г*ГЁГѕ
      for (j=i+1; j<n; j++)
        if (max[i]<max[j])
        {
            int buf=max[i];
            max[i]=max[j];
            max[j]=buf;                 
        }       
    for (i=0; i<n; i++) //ñîçäГ*Г*ГЁГҐ Г¬Г*òðèöû Г•
        for (j=0; j<n; j++)
            if (max[i]==mem[j]) for (k=0; k<m; k++) X[i][k]=A[j][k]; 
    cout<<"///////////////"<<endl; //Âûâîä Г*Г* ГЅГЄГ°Г*Г*
    for (i=0; i<n; i++) for (j=0; j<n; j++) 
    {
       cout << X[i][j] << " ";
       if (j==m-1) cout << endl;
    }              
    system("PAUSE");
    return EXIT_SUCCESS;
}
Компилировал в Dev C++
KulguninArtur
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 4
03.06.2013, 22:49  [ТС]     В Матрице A(N,M) расположить сверху-вниз строки #4
Цитата Сообщение от Naudiz Посмотреть сообщение
Написал, как можно проще:
Компилировал в Dev C++
Огромное спасибо
Но к сожалению не могу откомпилировать приложение при отладке. Постоянно ошибка. Тоже пытаюсь работать в Dev-C++
Naudiz
 Аватар для Naudiz
14 / 12 / 1
Регистрация: 04.11.2011
Сообщений: 137
04.06.2013, 08:11     В Матрице A(N,M) расположить сверху-вниз строки #5
KulguninArtur, проверь версию Dev-C++ и компилятора, я пользуюсь 4.9.9.2. Возможно у тебя старее или новее (форк). Выложи скриншот с сообщением об ошибках, разберемся.
Вот откомпилированная программа:
Вложения
Тип файла: zip zadacha.zip (123.8 Кб, 5 просмотров)
KulguninArtur
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 4
04.06.2013, 14:59  [ТС]     В Матрице A(N,M) расположить сверху-вниз строки #6
Цитата Сообщение от Naudiz Посмотреть сообщение
Возможно у тебя старее или новее
Благодарю. Была ошибка "Declaration syntax error" из-за неправильного использования using namespace str.
Теперь попробую залить скетч на Arduino (C), чтобы выводить эту матрицу на дисплей "1602 LCD Display". Чтобы при нажатии кнопки (2 сек), на дисплее появлялась случайная матрица с элементами убывающими сверху вниз. Так как дисплей имеет 2 строки, поэтому матрица будет 2*n либо получится сделать попиксельно, чтобы увеличить количество символов на строчку, но собственно нужна будет и специфическая кодировка, но с этим справимся.
На чистом C++ не работал практически, да и с математикой и логикой большие проблемы (в школе не учился толком).
А по сути, еще раз большое спасибо, будем пробовать и реализовывать. Возможно кому-то пригодится данный топик.

Добавлено через 46 минут
Хотя не получается. Приложение дает неправильную структуру. Не выводятся построчно максимальные элементы. Как выглядит результат:
Приложение не выполняет поставленной задачи
[IMG]http://www.****************/thumbs/4846_3334.jpg[/IMG]
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2013, 18:22     В Матрице A(N,M) расположить сверху-вниз строки
Еще ссылки по теме:

C++ Отобразить элементы матрицы зеркально сверху вниз
C++ Переместить вниз строки массива, в которых сумма элементов строки меньше ноля
C++ Сортировка двумерного массива. Строки сортируются слева направо, а столбцы сверху вниз

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

Или воспользуйтесь поиском по форуму:
Naudiz
 Аватар для Naudiz
14 / 12 / 1
Регистрация: 04.11.2011
Сообщений: 137
04.06.2013, 18:22     В Матрице A(N,M) расположить сверху-вниз строки #7
KulguninArtur, приложение с точностью выполняет указанную вами задачу, а именно:

Цитата Сообщение от KulguninArtur Посмотреть сообщение
нужно в матрице A(N,M) расположить сверху-вниз строки в порядке убывания их максимальных элементов и разместить их в матрице X(N,M).
Строки располагаются в порядке убывания их максимальных элементов. Вы задали матрицу 4х4 (4 столбца на 4 строки) Первые 4 элемента, которые Вы ввели построчно - это первая строка, следующие 4 значения - вторая строка и т.д. На вашем скриншоте результат, как раз новая матрица Х, в которой строки расположены сверху-вниз в порядке убывания их максимальных элементов.
Вообщем(см. свой скрин):
первая строка - 6 3 8 5 : максимальный элемент - 8
вторая - 7 4 2 1 : максимальный элемент - 7
3я - 6 2 4 6 : максимальный элемент - 6
4я - 8 9 4 3 : максимальный элемент - 9

Максимальные элементы в порядке убывания: 9 8 7 6. Первый элемент - 9 из 4й строки матрицы А, значит именно эта строка в матрице Х будет первой, следующий второй по порядку 8 находится в первой строке матрицы А, следовательно в матрице Х данная строка будет второй и т.д. Думаю логика ясна.


Цитата Сообщение от KulguninArtur Посмотреть сообщение
Не выводятся построчно максимальные элементы.
В задании ни слова об этом Читайте внимательнее.
Yandex
Объявления
04.06.2013, 18:22     В Матрице A(N,M) расположить сверху-вниз строки
Ответ Создать тему
Опции темы

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