Форум программистов, компьютерный форум, киберфорум
Наши страницы

неправильно работает программа для вычисления определителя определителя (c++) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В массиве из целых чисел найти среднее арифметическое тех чисел, которые начинаются с цифры 5 http://www.cyberforum.ru/cpp-beginners/thread1042139.html
В массиве из целых чисел найти среднее арифметическое тех чисел, которые начинаются с цифры 5. Сап, форумчане.
C++ Построить окружность которая движется по дуге http://i58.***********/big/2013/1215/de/1efd0c90e16d81d473d328f1ba1f82de.jpg Добавлено через 26 минут вот ссылка на задание: http://webfile.ru/dd4b56aa9c7d2658249b6411a64ee289 http://www.cyberforum.ru/cpp-beginners/thread1042136.html
Как создать карту помещения? C++
У робота имеется радар, энкодеры, компас. Перед роботом создать карту не составляет труда, зная дальность действия радара. А вот как создать карту помещения, понять не могу. Если взять двумерный...
C++ Работа с динамическим массивом
В программе есть динамический массив класса Enemy. И есть функция, которая при попадании стрелы во врага проверяет жив ли он после попадания, если мертв, то уменьшает переменную en_kol (количество...
C++ Путаница в условном операторе http://www.cyberforum.ru/cpp-beginners/thread1042101.html
Задача: Если сумма трех попарно различных действительных чисел x, y, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других; в противном случае заменить меньшее из x и y ...
C++ Провести побитовое кодирование слов английского языка Провести побитовое кодирование слов английского языка( мне нужно тока слово Alexandr), используя минимальное количество переменных, типа unsigned int. Помогите пожалуйста, т.к уже конец семетра, а... подробнее

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

неправильно работает программа для вычисления определителя определителя (c++) - C++

15.12.2013, 13:36. Просмотров 255. Ответов 0
Метки (Все метки)

работает вроде нормально, но иногда пишет неправильный знак определителя, причём ошибается в одном и том же месте(http://screeny.ru/52ad46cf367e3edf5f00b370 http://screeny.ru/52ad4700367e3edf5f00b37c)

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
87
88
89
90
91
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <stdlib.h>
long double det( long double a[4][4],int n)
{
  long  double v;
    int row = 0;
    int k=0;
    long double p=1;
    while (k<n-1)
   {
       int i,j;
       int gr = row;
        for (i=row+1; i<n;i++)
        {
            if (fabsl(a[row][k]) < fabsl(a[i][k]))//находим строку больше текущей
                gr = i;
        }
 
        if ( (row == gr) && (a[row][k] == 0)) {
            k++;
            continue;
        }
 
 
        if (row != gr)
        {
            for (j=0; j<n; j++)
            {
                //меняем местами сторку row(меньшую) и строку gr
                v = a[row][j]; 
                a[row][j] = a[gr][j];
                a[gr][j] = v;
            }
 
        }
 
    
        for (i=row+1; i<n; i++)
        {
            
            v = a[i][k]/a[row][k];
            a[i][k] = 0;
            if (v!=0) 
                for(j=k+1; j<n; j++){
                    
                    
                    a[i][j] = a[i][j] - (v*a[k][j]);
            
                }
        }
    row++;
    k++;
 
    }
    printf("\n");
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j <n; j++)
        {
            printf("%f|", a[i][j]);
        }
        printf("\n");
    }
printf("\n");
        int i=0;
        int j=0;
for (int l = 0; l < n; l++)
    {
 
         p=p*a[i][j];
        i++;
            j++;
 
 
    }
 
    return p;
}
 
void main()
{   
    long double a[4][4]= {{6,3,5,5},{7,0,9,4},{5,8,6,7},{7,6,7,0}};
 long double u;
int N;
N=4;
u=det(a,N);
printf("%f", u); 
getchar();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru