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

Нахождение детерминанта (определителя) матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблемы при использовании указателей для работы со строками http://www.cyberforum.ru/cpp-beginners/thread170859.html
#include <iostream> using namespace std; int main() { char src; cin >> src; // введення рядка до першого пропуску
C++ непонятная ошибка( // 1.cpp : main project file. #include "stdafx.h" #include <cstdio> // бібліотека введення-виводу #include <cstring> // бібліотека для роботи з рядками старого стилю #include <clocale> // бібліотека локалізації using namespace std; int main() http://www.cyberforum.ru/cpp-beginners/thread170851.html
теория C++
Добрый день!!! срочно нужины 2 примера : 1)чтобы нельзя было заменить цыкл for на while и еще один пример когда есть цыкл while но его нельзя заменить на for?? помогите плиз сижу на экзамене :(
C++ Напишите программу, определяющую первое вхождение заданного целого числа х в массив целых чисел.
1. Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, заменяет все элементы массива, кроме крайних на полусумму соседей, и печатает результат. 2. Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, и печатает “Yes”, если массив симметричен, и “No” в противном случае. 3. Напишите программу, определяющую первое вхождение заданного целого...
C++ Напишите программу, определяющую первое вхождение заданного целого числа х в массив целых чисел. http://www.cyberforum.ru/cpp-beginners/thread170824.html
9. Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, циклический сдвигает элементы массива вправо на к позиции, и печатает результат. Цикличность означает, что последний элемент массива становится самым первым его элементом. 10. Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, заменяет все элементы массива, кроме крайних на полусумму...
C++ Найти площадь пересечения прямоугольников даны 2 прямоугольника. Каждый из них задан 2 точками. верхней левой и правой нижней. если они пресекаются найди их площадь... Задавать надо координаты и чтобы программа посчитала площадь. Добавлено через 46 минут Если можно , то лучше всего описать все возможные случаи в программе через if подробнее

Показать сообщение отдельно
b1oodhound
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 4

Нахождение детерминанта (определителя) матрицы - C++

30.09.2010, 16:42. Просмотров 14083. Ответов 6
Метки (Все метки)

У меня вот код есть для нахождения детерминанта (определителя) матрицы 5х5
а как сделать, чтобы я мог сам ввести данные матрицы?

исправьте код пожалуйста


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
#include <iostream>
#include <cmath>
#include <ctime>
 
double determ(int** Arr, int size);
 
int main()
{
        srand(time(NULL));
        int size=3;
        int**Arr;
        Arr=new int*[size];
        for(int i=0;i<size;++i)
                Arr[i]=new int[size];
        for(int i=0;i<size;++i)
                for(int j=0;j<size;++j)
                        Arr[i][j]=0+rand()%5-1+1;
        for(int i=0;i<size;++i)
        {
                for(int j=0;j<size;++j)
                        std::cout<<Arr[i][j]<<' ';
                std::cout<<std::endl;
        }
        std::cout<< determ(Arr, size) <<'\n';
        for(int i=0;i<size;++i)
                delete[] Arr[i];
        delete[] Arr;
        return 0;
}
 
double determ(int** Arr, int size)
{
        int i,j;
        double det=0;
        int** matr;
        if(size==1)
        {
                det=Arr[0][0];
        }
        else if(size==2)
        {
                det=Arr[0][0]*Arr[1][1]-Arr[0][1]*Arr[1][0];
        }
        else
        {
                matr=new int*[size-1];
                for(i=0;i<size;++i)
                {
                        for(j=0;j<size-1;++j)
                        {
                                if(j<i) 
                                        matr[j]=Arr[j];
                                else
                                        matr[j]=Arr[j+1];
                        }
                        det+=pow((double)-1, (i+j))*determ(matr, size-1)*Arr[i][size-1];
                }
                delete[] matr;
        }
        return det;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru