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

Элементы строки больше ее суммы - C++

Восстановить пароль Регистрация
 
riv94
 Аватар для riv94
64 / 64 / 11
Регистрация: 13.02.2011
Сообщений: 390
17.11.2012, 18:09     Элементы строки больше ее суммы #1
Привет всем) Пишу курсач по программированию. Вот такая задачка:
Изначально имеем массивы А и В размерностью 3х3, вводимые с клавиатуры. А также массив С размерностью 6х6. Нужно в массив С записать все элементы матриц А и В, превышающие сумму элементов i-й строки своей матрицы. Причем приоритет при заполнении имеет матрица А. Оставшиеся элементы в матрице С - нули!

Т.е. что у нас должно быть практически:

А

5 -2 -6
0 0 0
0 0 0

В

0 0 0
6 -10 1
0 0 0

И, исходя из данных С

5 -2 6 1 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

Как решаю эту задачу я:
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
    // ПОЛУЧЕНИЕ МАТРИЦЫ С с ЭЛЕМЕНТАМИ МАТРИЦ А и В, превышающими сумму элементов строки!!!
        // Изначально занулим все элементы массива С
        for (i=0; i<=5; i++)
        {for (j=0; j<=5; j++) {C[i][j]=0;};};
 
        // Пройдем по массиву А
        n=0; m=0;
        for (i=0; i<=2; i++)
        { sum=A[i][0]+A[i][1]+A[i][2];
          for (j=0; j<=2; j++)
          {if (A[i][j]>sum)
            {
              C[n][m]=A[i][j];
              n++;
              if (n=6) {m++; n=0;};
            };
          };
        };
 
        // Пройдем по массиву В
        for (i=0; i<=2; i++)
        { sum=B[i][0]+B[i][1]+B[i][2];
          for (j=0; j<=2; j++)
          {if (B[i][j]>sum)
            {
              C[n][m]=B[i][j];
              n++;
              if (n=6) {m++; n=0;};
            };
        };
        
        // Вывод готового массива С
         for (i=0; i<=5; i++)
        {for (j=0; j<=5; j++) {cout<<C[i][j]<<' ';}; cout<<endl;};
И в расчетах у меня почему-то не учитывается матрица В, т.е. выводится следующая матрица С
5 -2 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

Что еще интереснее, так это то, что проходя по матрице С, я должен постепенно увеличивать номер столбца в строке, и в тот момент, когда номер столбца достигнет максимального значения, обнулить его и увеличить номер строки на единицу!!! Но выполняя следующие действия, программа выводит такой массив
5 0 0 0 0 0
-2 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

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

Добавлено через 13 минут
С помощью друга нашел ошибку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
// Пройдем по массиву В
        for (i=0; i<=2; i++)
        { sum=B[i][0]+B[i][1]+B[i][2];
          for (j=0; j<=2; j++)
          {if (B[i][j]>sum)
            {
              C[n][m]=B[i][j];
              n++;
              if (n=6) {m++; n=0;};
            };
          }; // ВОТ ЭТОЙ СКОБОЧКИ НЕ ХВАТАЛО!!!
        };
Но меня все равно интересует вопрос насчет строк-столбцов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 18:09     Элементы строки больше ее суммы
Посмотрите здесь:

Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В. C++
В двумерном массиве выбрать элементы, которые больше суммы положительных элементов главной диагонали массива C++
Выявить строки, в которых макс. эл-т больше суммы остальных эл-ов строки C++
C++ Определить, верно ли утверждение: сумма элементов каждого i-го столбцы матрицы больше суммы i-й строки.
C++ Определить, верно ли утверждение: сумма элементов каждого i-го столбца матрицы больше суммы i-й строки
Определить, что все элементы строки первой матрицы больше соответствующих элементов строки второй матрицы C++
C++ Определить, верно ли утверждение: сумма элементов каждой i-й строки матрицы больше суммы (i-1)-й строки
C++ Определить, верно ли утверждение: сумма элементов каждой i-ой строки матрицы больше суммы (i-1)-ой строки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2012, 21:26     Элементы строки больше ее суммы #2
C++
1
if (n==6)
riv94
 Аватар для riv94
64 / 64 / 11
Регистрация: 13.02.2011
Сообщений: 390
17.11.2012, 23:46  [ТС]     Элементы строки больше ее суммы #3
alsav22, блиииин!!! большое спасииибо все работает теперь!!!
Yandex
Объявления
17.11.2012, 23:46     Элементы строки больше ее суммы
Ответ Создать тему
Опции темы

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