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

не работает умножение на 0 - C++

Восстановить пароль Регистрация
 
White Luna
 Аватар для White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
03.05.2012, 22:19     не работает умножение на 0 #1
вместо 0 выдает -1,25549e+067
почему такое происходит не могу понять, подскажите как исправить
часть кода где идет умновдение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
     for (int i = 1; i <= N-r; i++)
        {
          for (int j = 1; j <= N-r; j++)
          {
            if(i==N-r){if(j==N-r){
            
                    for(int k=j+1; k<N; k++)
                    {
                        cout << U[j][k] <<"         "<<x[k][j]<<endl;
                        z += U[j][k]*x[k][j];
                        cout << z <<endl;
                    }
                    x[j][j]=(1 - z)/U[j][j];
            cout << x[j][j] <<endl;
            }
      }}
         }
Добавлено через 1 минуту
в 10 строке U=0, а x=0.166667 - по условию
а при умножение получаем z=-1,25549e+067
не могу понять в чем ошибка
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2012, 22:19     не работает умножение на 0
Посмотрите здесь:

C++ Умножение матриц
C++ Умножение матриц
C++ Умножение матриц
C++ умножение
Быстрое умножение C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OlegLvovskyj
9 / 9 / 2
Регистрация: 02.12.2010
Сообщений: 66
03.05.2012, 22:34     не работает умножение на 0 #2
значить U[j][k] не дорівнює 0. попробуй вивести значення масивів на екран шоб впевнитись які значення реально вони мають
White Luna
 Аватар для White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
03.05.2012, 22:42  [ТС]     не работает умножение на 0 #3
0 это реальное значение U я уже выводила
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
03.05.2012, 22:42     не работает умножение на 0 #4
White Luna,
1. чему равно z ?
2. чем заполнен U ?
3. эта конструкция тоже ведь не просто так...:
C
1
2
                    x[j][j]=(1 - z)/U[j][j];
            cout << x[j][j] <<endl;
Если все элементы U равны нулю то должно произойти исключение.
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
03.05.2012, 22:43     не работает умножение на 0 #5
вы не присваиваете z новое значение, а прибавляете к старому новое(и по всей видимости изначально z<>0).
C++
1
2
3
z += U[j][k]*x[k][j];
тоже, что и 
z = z + U[j][k]*x[k][j];
попробуйте заменить на
C++
1
z = U[j][k]*x[k][j];
White Luna
 Аватар для White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
03.05.2012, 22:56  [ТС]     не работает умножение на 0 #6
извините уже решила проблему

Добавлено через 31 секунду
первоначально х занулила
Yandex
Объявления
03.05.2012, 22:56     не работает умножение на 0
Ответ Создать тему
Опции темы

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