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

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

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

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

24.10.2010, 01:49. Просмотров 453. Ответов 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();
}
Заранее СПАСИБО!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2010, 01:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Баг в программе по вычислению обратной матрицы (C++):

Баг в программе - C++
Доброго времени суток,форумчане. Задача такова: Массивв символов,содержащий 16-ое представление чисел. Надо перевести hex в dec. Баг в...

Баг в программе - C++
Задание. Код. При тестировании программы 2 значения не проходят. В чем баг - не знаю. Помогайте с:

помогите определить баг или недочёт в программе. - C++
Задача ввести с клавиатуры массив и вывести на экран наибольший его элемент. Проблема заключается в if когда s&lt;mas он всё время...

Умножение матрицы на матрицу, и нахождение обратной матрицы - C++
Здравствуйте! нужно написать программу, которая могла бы производить всякие операции над матрицами (двухмерными массивами) меня...

std::regex : баг на сайте или баг компилятора? - C++
http://en.cppreference.com/w/cpp/regex/regex_match этот код выкидывает throw... Добавлено через 35 секунд компилятор gcc 4.8

Баг asio? или баг TCP стека? - C++
всем привет. повстречался с очень странным багом. и не могу определить кто бажит, asio, или TCP-стек. на стороне клиента,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
papochka
24.10.2010, 01:52
  #2

Не по теме:

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

TiM@
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 9
24.10.2010, 01:55  [ТС] #3
значения Х это присоединённая Матрица
значения О обратная матрица!!!
papochka
33 / 33 / 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
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
24.10.2010, 07:46 #6
Массив сделать что не позволяет ?
valeriikozlov
Эксперт C++
4670 / 2496 / 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
33 / 33 / 2
Регистрация: 14.11.2009
Сообщений: 137
24.10.2010, 10:50 #8
Цитата Сообщение от TiM@ Посмотреть сообщение
вот это одна из тупостей задаю %d9 просит 10 значений а так стоит 8 он просит 9 чисет
1 в 1 но при этом прога глючит!!!
Лучше переделайте в массив. ведь уже не будет так "страшно"...
KuKu
1557 / 1035 / 77
Регистрация: 17.04.2009
Сообщений: 2,981
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;
это есть что ?
CyBOSSeR
Эксперт C++
2300 / 1670 / 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)?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2010, 12:39
Привет! Вот еще темы с ответами:

Поиск обратной матрицы - C++
Дана ленточная разреженная матрица. Найти обратную. Знаю, что это тема есть на форуме, но ответа так и не было. Может кто-нибудь на...

Нахождение обратной матрицы - C++
Здравствуйте, уважаемые программисты! Прощу помощи. Для заданной матрицы A(3,3), найти обратную А в -1 степени. Буду очень...

Нахождение обратной матрицы - C++
Помогите,пожалуйста доделать или переделать нужно найти обратную матрицу тут маленько наброски есть методом гаусса но не могу доделать или...

Нахождение обратной матрицы - C++
Нужна помощь, уже сломал мозг, требуется ввод матрицы клавиатуры, затем она должна считать обратную, затем умножить обратную на исходную и...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.10.2010, 12:39
Ответ Создать тему
Опции темы

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