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

Найти суму двух квадратных матриц разного размера - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массивы. Вывод количества ненулевых элементов http://www.cyberforum.ru/cpp-beginners/thread783595.html
Привет всем трудящимся, нужна помощь в решению пару задач. 1.Написать программу, для ввода с клавиатуры одномерного массива с 5 целых чисел, та вывода количества ненулевых элементов в нем. Заранее спасибо, жду ответов.
C++ Указатели на функции Подскажите должен ли работать этот код(самый первый). И как он работает http://www.cyberforum.ru/cpp-beginners/thread783592.html
Указатель на ф-цию член класса C++
Чёрная магия или я бот? g++ sub.cpp:21: error: expected unqualified-id before ‘*’ token sub.cpp:21: error: must use ‘.*’ or ‘->*’ to call pointer-to-member function in ‘t (...)’, e.g. ‘(... ->* t) (...)’ #include <iostream> using namespace std;
C++ Нюанс в работе с классом
задача такая создать класс для работы с множествами и реализовать в нём функции для объединения разности множеств и т.д если я запонляю поля класса так как в коде #include <iostream> #include <iomanip> #define const 2 using namespace std;
C++ подключение MSXML в MSVC2010 http://www.cyberforum.ru/cpp-beginners/thread783574.html
всем привет помогите пожалуйста подключаю MSXML6 в проект для C++ VC2010 делаю все как в руководстве http://msdn.microsoft.com/en-us/library/windows/desktop/ms766387(v=vs.85).aspx но ничего не собирается
C++ Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда, описать функцию IsSquare(K) Здравствуйте, нужна помощь по решению двух зачад в TC++(Turbo C++); Задача 1. Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда. Задача 2. Описать функцию IsSquare(K) логического типа, возвращающую True, если целый параметр K(>0) является квадратом некоторого целого числа, и False в противном случае. С ее помощью найти количество квадратов в наборе из 10 целых... подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 18:15     Найти суму двух квадратных матриц разного размера
Откомпилировал с ключём -Wall -pedantic. Действительно выдало предупреждение. Странно раньше этого не замечал.
Цитата Сообщение от Ev[G
eN;4120501]это не есть правильно
Можете объяснить, почему это не правильно, ведь результат работы вполне нормальный.

Добавлено через 6 минут
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Не сработает. Память нужно выделять динамически. А также, матрицы должны быть квадратными.
Прошу прощения, матрица действительно не квадаратная, век живи век учись, как говорится...

Добавлено через 26 минут
Принимая во внимания все наставления и рекомендации, а также на основании того, что при не соответствии диапазона одной из матриц, берётся значение наиболешей:
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
int main()
{
    int FM, SM, NM; 
 
    std::cout << "1-st matrix:\n"
        "Size: ";
    std::cin >> FM;
    std::cout << "2-st matrix:\n"
        "Size: ";
    std::cin >> SM;
 
    // Генерируем матрицы
    int** mx1 = new int*[FM];
    for (int i = 0; i < FM; ++i)
        mx1[i] = new int[FM];
 
    int** mx2 = new int*[SM];
    for (int i = 0; i < SM; ++i)
        mx2[i] = new int[SM];
 
    // Генерируем случайные значения, выводим результат
    srand(time(0));
    std::cout << "\nFirst matrix:\n";
    for (int y = 0; y < FM; ++y) // 1-st
        for (int x = 0; x < FM; ++x) {
            std::cout << (mx1[y][x] = rand() % 100);
            std::cout << ((x % FM == FM-1) ? '\n' : ' ');
        }
 
    std::cout << "\nSecond matrix:\n";
    for (int y = 0; y < SM; ++y) // 2-st
        for (int x = 0; x < SM; ++x) {
            std::cout << (mx2[y][x] = rand() % 100);
            std::cout << ((x % SM == SM-1) ? '\n' : ' ');
        }
 
    // Вычисляем размер новой матрицы и выделям память
    NM = (FM >= SM) ? FM : SM;
    int** res = new int*[NM];
    for (int i = 0; i < NM; ++i)
        res[i] = new int[NM];
 
    // Копируем и отображаем результат
    int temp_mx1, temp_mx2;
    std::cout << "\nResult:\n";
    for (int y = 0; y < NM; ++y) // new
        for (int x = 0; x < NM; ++x) {
           temp_mx1 = (y < FM && x < FM) ? mx1[y][x] : 0;
           temp_mx2 = (y < SM && x < SM) ? mx2[y][x] : 0;
           std::cout << (res[y][x] = temp_mx1 + temp_mx2);
           std::cout << ((x % NM == NM-1) ? '\n' : ' ');
        }
 
    // Освобождаем память
    for (int i = 0; i < FM; ++i)
        delete [] mx1[i];
    delete [] mx1;
 
    for (int i = 0; i < SM; ++i)
        delete [] mx2[i];
    delete [] mx2;
 
    for (int i = 0; i < SM; ++i)
        delete [] res[i];
    delete [] res;
 
    return 0;
}
 
Текущее время: 15:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru