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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ объектно ориентированное программирование http://www.cyberforum.ru/cpp-beginners/thread700362.html
Вот задача: 1. Разработать программу, описывающую систему, приведенную в варианте, через наследование, где один класс является родителем двух других классов. Определить несколько конструкторов для каждого класса. Отслеживать корректность данных классов. 2. Изменить предыдущую программу, добавив в родительский класс виртуальные методы: 1) следующие из описания и функций системы, 2) методы...
C++ Как написать функцию для Буттон1(Которая распол. на Form2) что бы возвращалась к Form1 от Form2 Коллеги подскажите как написать такю кнопку=)) Пробовал oid __fastcall TForm2::Button1Click(TObject *Sender) { Form1->ShowModal(); } //--------------------------------------------------------------------------- но увы...=((( http://www.cyberforum.ru/cpp-beginners/thread700348.html
C++ Перегрузка операторов
#include <stdio.h> #include <stdlib.h> class matrix { protected: int **mass; int n; public: matrix()
О перегрузке операторов C++
Вот у меня есть код программы : #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; class A {private: //закритий доступ int x; public: //відкритий доступ A()
C++ Substring для textbox http://www.cyberforum.ru/cpp-beginners/thread700332.html
Вот в чем проблема: Надо взять подстроку из "переменной" textBox1->Text Но, никакие попытки и поиски решения в интернете по SubString из textbox, нету! Vs2008
C++ Ошибка "cannot convert" Дано два массива 3х2 и 1х3 double W1={{ 0.1, 0.1},{-0.2,-0.1},{ 0.1, 0.3}}; double W2={0.2,0.2,0.3}; Вызываю ф-цию solo два раза solo(x1,x2,2,3,W1); solo(x2,x3,1,3,W2); подробнее

Показать сообщение отдельно
riv94
 Аватар для riv94
64 / 64 / 11
Регистрация: 13.02.2011
Сообщений: 390
17.11.2012, 18:09     Элементы строки больше ее суммы
Привет всем) Пишу курсач по программированию. Вот такая задачка:
Изначально имеем массивы А и В размерностью 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;};
            };
          }; // ВОТ ЭТОЙ СКОБОЧКИ НЕ ХВАТАЛО!!!
        };
Но меня все равно интересует вопрос насчет строк-столбцов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru