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

Решить СЛАУ методом Гаусса (проверить) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массивы:многомерный и одномерный (заменить нулями все отрицательные числа выше главной диагонали) http://www.cyberforum.ru/cpp-beginners/thread734048.html
Вот массив номер 1 (многомерный) тут задача была заменить нулями все отрицательные числа выше главной диагонали И найти место максимума среди чисел ниже побочной диагонали #include <iostream> using namespace std; void main() {int i,j,max,jmax,imax; int matrix ; cout<<"Input matrix\n"; for(i=0;i<3;i++) for(j=0;j<3;j++)
C++ В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении. http://www.cyberforum.ru/cpp-beginners/thread734047.html
C++ Разделить строку strtok
Есть строка: str = "aaa;bbb;ccc;;ddd"; Если ее разделять при помощи strtok(), то функция проигнорирует вторую точку запятой (ccc;;ddd) и в итоге, допустим, в массиве mas будет только 4 элемента: mas = "aaa"; mas = "bbb"; mas = "ccc"; mas = "ddd";
Обращение ко второму элементу массива указателей на строки C++
Добрый день. Не получается обратиться ко второму элементу: #include <stdio.h> int main(void) { char **ss = { "Run away", "Peace to all", NULL };
C++ итератор для шаблона http://www.cyberforum.ru/cpp-beginners/thread734027.html
я написал шаблон должен быть выполнять некоторые функции как у вектора,помогите написать итератор template <class T> class myvector { private: int top;//сколько элементов в векторе T* arr; int sz;//максимальное количество элементов в векторе public: myvector(int=0);//конструктор по умолчанию
C++ класс Money Задание: Создать класс Money для работы с денежными суммами (задание 1.24). Сумма должна быть представлена массивом, каждый элемент которого - десятичная цифра. Максимальная длина массива - 100 цифр, реальная длина задается конструктором. Младший индекс соответствует младшей цифре денежной суммы. Младшие две цифры - копейки. Задание 1.24: Создать класс Money для работы с денежными суммами. Число... подробнее

Показать сообщение отдельно
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
16.12.2012, 17:38     Решить СЛАУ методом Гаусса (проверить)
Есть код!компилируется без ошибок.Задача программы решить СЛАУ методом Гаусса
Но я не понимаю почему вывод информации осуществляется некорректно, ребят помогите разобраться пожалуйста!

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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#define N 20
#include <CONIO.H>
#include <STDIO.H>
#include <MATH.H>
 
void glavelem(int k,double mas[][N+1],int n,int otv[]);
 
int main(void)
 
 
{
 
double mas[N] [N+1];
double x[N];
int otv[N];
int i,j,k,n;
clrscr();
do
 
{
 
printf("VVedite 4islo ypaBHeHuu cucTeMbl");
scanf("%d",&n);
if(N<n)
printf("CJluIIIkoM 6oJlbIIIoe 4ucJlo ypaBHeHuu`.IIoBTopuTe BBog\n");
 
}
 
while(N<n);
printf("BBeguTe cucTemy\n");
for(i=0;i<n;i++)
for(j=0;j<n+1;j++)
scanf("%lf",&mas[i][j]);
clrscr();
printf("CuCTeMa\n");
for(i=0;i<n;i++)
 
{
 
for(j=0;j<n+1;j++)
printf("%7.2f",mas[i][j]);
printf("\n");
 
}
 
for(i=0;i<n+1;i++)
otv[i]=i;
for(k=0;k<n;k++)
glavelem(k,mas,n,otv);
if(fabs(mas[k][k])<0.0001)
 
{
 
printf("CucTeMa He uMeeT eguHcTBeHHoro PeIIIeHu9l");
return(0);
 
}
 
for(j=n;j>=k;j--)
mas[k][j]/=mas[k][k];
for(i=k+1;i<n;i++)
for(j=n;j>=k;j--)
mas[i][j]-=mas[k][j]*mas[i][k];
 
 
 
for(i=0;i<n;i++)
x[i]=mas[i][n];
for(i=n-2;i>=0;i--)
for(j=i+1;j<n;j++)
x[i]-=x[j]*mas[i][j];
printf("otvet\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(i==otv[j])
 
{
 
printf("%f\n",x[j]);
break;
 
}
 
return(0);
 
}
 
void glavelem(int k, double mas[][N+1], int n, int otv[])
 
{
 
int i,j,i_max=k,j_max=k;
double temp;
for(i=k;i<n;i++)
for(j=k;j<n;j++)
if(fabs(mas[i_max][j_max])<fabs(mas[i][j]))
 
{
 
i_max=i;
j_max=j;
 
}
 
for(j=k;j<n+1;j++)
 
{
 
temp=mas[k][j];
mas[k][j]=mas[i_max][j];
mas[i_max][j]=temp;
 
}
 
for(i=0;i<n;i++)
 
{
 
temp=mas[i][k];
mas[i][k]=mas[i][j_max];
mas[i][j_max]=temp;
 
}
 
i=otv[k];
otv[k]=otv[j_max];
otv[j_max]=i;
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru