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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TiM@
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 9
#1

Баг в программе по вычислению обратной матрицы - C++

24.10.2010, 01:49. Просмотров 438. Ответов 9
Метки нет (Все метки)

Программа по нахождению обратной матрици!!! не могу найти ошибку - выдаёт одни и те же ответы!!!
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
#include <stdio.h>
#include <conio.h>
 
void main()
{
int a1,a2,a3,b1,b2,b3,c1,c2,c3;
int a11,a12,a13,a21,a22,a23,a31,a32,a33;
int x1,x2,x3,x4,x5,x6,x7,x8,x9;
float o1,o2,o3,o4,o5,o6,o7,o8,o9;
float det;
clrscr();
printf("vvvedite matricu(3x3)\n");
scanf(" %d %d %d %d %d %d %d %d\n",&a1,&a2,&a3,&b1,&b2,&b3,&c1,&c2,&c3);
{
det=a1*b2*c3+a2*b3*c1+b1*c2*a3-c1*b2*a3-b1*a2*c3-b3*c2*a1;
}
printf("determinant = %d\n",&det);
{
 
x1=(b2*c3+b3*c2); x2=(b1*c3+c1*b3); x3=(b1*c2-b2*c1);
x4=(a2*c3-a3*c2); x5=(a1*c3-a3*c1); x6=(a1*c2+c1*a2);
x7=(a2*b3-a3*b2); x8=(a1*b3-a3*b1); x9=(a1*b2-a2*b1);
 
x1=a11,x2=a21,x3=a31;
x4=a12,x5=a22,x6=a32;
x7=a13,x8=a23,x9=a33;
}
printf("  a11=%d _ a21=%d _ a31=%d\n  a12=%d _ a22=%d _ a32=%d\n  a13=%d _ a23=%d _ a33=%d\n",&x1,&x2,&x3,&x4,&x5,&x6,&x7,&x8,&x9);
{
o1=(x1/det); o2=(x2/det); o3=(x3/det);
o4=(x4/det); o5=(x5/det); o6=(x6/det);
o7=(x7/det); o8=(x8/det); o9=(x9/det);
}
printf("Obratnaia MATRIX\n _ o1=%d _ o2=%d _ o3=%d\n _ o4=%d _ o5=%d _ o6=%d\n _ o7=%d _ o8=%d _ o9=%d\n", &o1,&o2,&o3,&o4,&o5,&o6,&o7,&o8,&o9);
getch();
}
Заранее СПАСИБО!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
papochka
24.10.2010, 01:52
  #2

Не по теме:

не то, что баг, я программу не пойму, в таком-то стиле

TiM@
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 9
24.10.2010, 01:55  [ТС]     Баг в программе по вычислению обратной матрицы #3
значения Х это присоединённая Матрица
значения О обратная матрица!!!
papochka
32 / 32 / 2
Регистрация: 14.11.2009
Сообщений: 137
24.10.2010, 02:02     Баг в программе по вычислению обратной матрицы #4
C
1
scanf(" %d %d %d %d %d %d %d %d\n",&a1,&a2,&a3,&b1,&b2,&b3,&c1,&c2,&c3);
%d - 8, а &n - 9...

Все, что пока бросилось в глаза. пойду спать. утром гляну ещё.
TiM@
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 9
24.10.2010, 02:46  [ТС]     Баг в программе по вычислению обратной матрицы #5
вот это одна из тупостей задаю %d9 просит 10 значений а так стоит 8 он просит 9 чисет
1 в 1 но при этом прога глючит!!!
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
24.10.2010, 07:46     Баг в программе по вычислению обратной матрицы #6
Массив сделать что не позволяет ?
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.10.2010, 08:34     Баг в программе по вычислению обратной матрицы #7
Цитата Сообщение от TiM@ Посмотреть сообщение
задаю %d9 просит 10 значений а так стоит 8 он просит 9 чисет
так не пойдет, у Вас в c3 будет непонятное значение.
Если считываете значение с клавиатуры, то сделайте так:
C
1
scanf(" %d %d %d %d %d %d %d %d %d",&a1,&a2,&a3,&b1,&b2,&b3,&c1,&c2,&c3);
Дальше у Вас идет несоответствие типам переменных в командах вывода на экран значения det, а также значений o1-o9.
Кроме этого Вы такой командой:
C
1
printf("  a11=%d _ a21=%d _ a31=%d\n  a12=%d _ a22=%d _ a32=%d\n  a13=%d _ a23=%d _ a33=%d\n",&x1,&x2,&x3,&x4,&x5,&x6,&x7,&x8,&x9);
выводите не значение переменных, а адреса переменных (уберите символ '&' в командах вывода на экран).
Так же при вычислениях значений Вы используете переменные разных типов и не приводите их к нужному типу. Вот простой пример:
int a=2, b=3;
float tt=2/3;
// Вот в этом месте значение tt будет равно 0.000000
А вот если сделать так:
int a=2, b=3;
float tt=(float)2/(float)3;
// то теперь в этом месте значение tt будет равно 0.666667
papochka
32 / 32 / 2
Регистрация: 14.11.2009
Сообщений: 137
24.10.2010, 10:50     Баг в программе по вычислению обратной матрицы #8
Цитата Сообщение от TiM@ Посмотреть сообщение
вот это одна из тупостей задаю %d9 просит 10 значений а так стоит 8 он просит 9 чисет
1 в 1 но при этом прога глючит!!!
Лучше переделайте в массив. ведь уже не будет так "страшно"...
KuKu
1554 / 1032 / 75
Регистрация: 17.04.2009
Сообщений: 2,971
24.10.2010, 10:56     Баг в программе по вычислению обратной матрицы #9
Цитата Сообщение от TiM@ Посмотреть сообщение
x1=a11,x2=a21,x3=a31;
x4=a12,x5=a22,x6=a32;
x7=a13,x8=a23,x9=a33;
это есть что ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2010, 12:39     Баг в программе по вычислению обратной матрицы
Еще ссылки по теме:

C++ Нахождение обратной матрицы
Нахождение обратной матрицы C++
C++ Нахождение обратной матрицы
C++ Баг в программе
C++ Поиск обратной матрицы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
CyBOSSeR
Эксперт C++
2298 / 1668 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.10.2010, 12:39     Баг в программе по вычислению обратной матрицы #10

Не по теме:

Цитата Сообщение от KuKu Посмотреть сообщение
это есть что ?
Я подозреваю, что это издевательство над здравым смыслом.


Цитата Сообщение от TiM@ Посмотреть сообщение
o1=(x1/det); o2=(x2/det); o3=(x3/det);
o4=(x4/det); o5=(x5/det); o6=(x6/det);
o7=(x7/det); o8=(x8/det); o9=(x9/det);
Вам вместо xn сразу сюда ann не подставить? На кой Вам 9 лишних переменных (хотя лишних переменных тут далеко не 9)?
Yandex
Объявления
24.10.2010, 12:39     Баг в программе по вычислению обратной матрицы
Ответ Создать тему
Опции темы

Текущее время: 21:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru