Форум программистов, компьютерный форум 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 подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
30.09.2010, 16:49     Нахождение детерминанта (определителя) матрицы
Та пожалста. Но опять же я не уверен что пять на пять он посчитает верно.

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
#include <iostream>
#include <cmath>
 
double determ(int** Arr, int size);
 
int main()
{
        int size=5;
        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)
                        std::cin>>Arr[i][j];
        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