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

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

Войти
Регистрация
Восстановить пароль
 
riv94
64 / 64 / 11
Регистрация: 13.02.2011
Сообщений: 390
#1

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

17.11.2012, 18:09. Просмотров 295. Ответов 2
Метки нет (Все метки)

Привет всем) Пишу курсач по программированию. Вот такая задачка:
Изначально имеем массивы А и В размерностью 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;};
            };
          }; // ВОТ ЭТОЙ СКОБОЧКИ НЕ ХВАТАЛО!!!
        };
Но меня все равно интересует вопрос насчет строк-столбцов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 18:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Элементы строки больше ее суммы (C++):

Вывести строки матрицы, в которых модуль суммы отрицательных чисел больше модуля суммы положительных - C++
Друзья,помогите пожалуйста, если можете! Нужно создать матрицу M на N и заполнить её действительными числами, определить и вывести на...

Выявить строки, в которых макс. эл-т больше суммы остальных эл-ов строки - C++
В прямоугольной матрице выявить все строки, у которых максимальный элемент превосходит сумму остальных элементов строки. Хочу...

Определить, верно ли утверждение: сумма элементов каждой i-й строки матрицы больше суммы (i-1)-й строки - C++
Дана квадратная матрица натуральных чисел, (получаемая через rand()). Определить, верно ли утверждение: сумма элементов каждой i-й строки...

Определить, верно ли утверждение: сумма элементов каждой i-ой строки матрицы больше суммы (i-1)-ой строки - C++
1. Дана квадратная матрица натуральных чисел, (получаемая через rand()). Определить, верно ли утверждение: сумма элементов каждой i-й...

Найти строки, у которых диагональный элемент больше суммы всех остальных - C++
2. Дан квадратный двумерный массив A размера nxn. Сформировать одномерный массив B, куда записать номера тех строк A, у которых...

В двумерном массиве выбрать элементы, которые больше суммы положительных элементов главной диагонали массива - C++
Задача такова: &quot;в двумерном массиве выбрать элементы, которые больше суммы положительных элементов главной диагонали массива&quot;. не могли бы...

2
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2012, 21:26 #2
C++
1
if (n==6)
0
riv94
64 / 64 / 11
Регистрация: 13.02.2011
Сообщений: 390
17.11.2012, 23:46  [ТС] #3
alsav22, блиииин!!! большое спасииибо все работает теперь!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2012, 23:46
Привет! Вот еще темы с ответами:

Определить, верно ли утверждение: сумма элементов каждого i-го столбца матрицы больше суммы i-й строки - C++
Дана матрица натуральных чисел,(получаемая через rand()). Определить, верно ли утверждение: сумма элементов каждого i-го столбца матрицы...

Определить, верно ли утверждение: сумма элементов каждого i-го столбцы матрицы больше суммы i-й строки. - C++
Дана квадратная матрица натуральных чисел, (получаемая через rand()). Определить, верно ли утверждение: сумма элементов каждого i-го...

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

Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В - C++
Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В. Выполнить с использованием указателей и без. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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