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

Функция разбиения матрицы на две - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как лучше всего учить язык C++? http://www.cyberforum.ru/cpp-beginners/thread581626.html
Хочу начать изучать язык программирования! Остановился на C++, а с чего начать не знаю!
C++ «сортировка фон Неймана/слиянием» Сортировка слиянием,помогите реализовать программу на языке C++ n1=800 n2=3000 n3=7000 http://www.cyberforum.ru/cpp-beginners/thread581614.html
Формула ! C++
Ребят очень срочно нужна помощь у меня такое задание ,сделать так чтобы был вывод на экран по ращением математического примера (тесть я задаю число а оно решается по примерам T1,T2 , и выводит ответ на экран ) я то сделал но постоянно ошибаюсь в скобках , где то не правильно ставлю ( вот сам пример Помогите очень нужно
C++ Блок-схема
Помогите построить блок-схему к этому коду я совсем запуталась ((( for (z=0, x=0, j=0; x<m, j<m; j++, x++) { max=a; for (i=1; i<n; i++) { if (a>max) { max=a; }
C++ Статические члены класса http://www.cyberforum.ru/cpp-beginners/thread581582.html
Добрый день. Проходили тему - статические члены класса. Написали программу, вылезает ошибка, помогите побороть пожалуйста. #include "stdafx.h" #include <string.h> class CName{ char sName; public: CName(){ sName='\0';
C++ Используя прототип функции написать программы Сделал всё обычным способом, в Dev C++, обычные программы..но теперь требуется написать те же программы, только используя прототип функций..Сами программы прилагаю к каждому заданию.. 1) для нахождения максимального элемента в одномерном массиве, состоящим из n вещественных элементов #include <cstdlib> #include <iostream> #include <math.h> using namespace std; float imax; подробнее

Показать сообщение отдельно
_Loader_
 Аватар для _Loader_
6 / 6 / 0
Регистрация: 18.04.2012
Сообщений: 92
21.05.2012, 21:57     Функция разбиения матрицы на две
Доброго времени суток уважаемые форумчане. Столкнулся с проблемой. Необходимо написать функцию разбиения матрицы на две матрицы, в качестве входных параметров должна быть матрица, а в качестве выходных две матрицы.
Сделал программу, но преподаватель забраковал. В общем надо сделать с помощью функции.
Вот что у меня получилось:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    cout<<"Input number of rows: "<<endl;
    int k;
    cin>>k;
    cout<<"Input number of cols: "<<endl;
    int m;
    cin>>m;
    typedef vector<vector<int> > Matrix;
 
    Matrix A(k);
    cout<<"Input matrix: "<<endl;
    int temp;
 
    // Заполнение исходной матрицы
    for (int i = 0; i < k; ++i)
        for (int j = 0; j < m; ++j)
        {
            cin>>temp;
            A[i].push_back(temp);
        }
 
        cout<<"Input number of rows of first matrix: "<<endl;
        int k1;
        cin>>k1;
        // Проверка допустимости числа строк
        if (k1 == k)
        {
            while (k1 == k)
            {
                cout<<"Wrong number of rows!"<<endl;
                cout<<"Input number of rows: "<<endl;
                cin>>k1;
            }
        }
 
        // Заполнение первой матрицы    
        Matrix B(k1);
        for (int i = 0; i < k1; ++i)
            for (int j = 0; j < m; ++j)
            {
                B[i].push_back(A[i][j]);            }
// Заполнение второй матрицы    
            int k2 = k - k1;    
            Matrix C(k2);
            for (int i = k1, i1 = 0; i < k; ++i, ++i1)
                for (int j = 0; j < m; ++j)
                {
                    C[i1].push_back(A[i][j]);
                }
 
                // Вывод исходной матрицы
                cout<<"Matrix A: "<<endl;
                for (int i = 0; i < k; ++i)   
                {
                    for (int j = 0; j < m; ++j)
                        cout<<A[i][j]<<" ";
                    cout<<endl;
                }
 
                // Вывод первой матрицы
                cout<<"Matrix A1: "<<endl;
                for (int i = 0; i < k1; ++i)   
                {
                    for (int j = 0; j < m; ++j)
                        cout<<B[i][j]<<" ";
                    cout<<endl;
                }
 
                // Вывод второй матрицы
                cout<<"Matrix A2: "<<endl;
                for (int i = 0; i < k2; ++i)   
                {
                    for (int j = 0; j < m; ++j)
                        cout<<C[i][j]<<" ";
                    cout<<endl;
                }
                system("PAUSE");
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru