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

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

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

Вместо нуля выводит непонятное число - C++

18.05.2013, 00:19. Просмотров 1035. Ответов 3
Метки нет (Все метки)

Вот пожалуйста кусок кода, считающий неувязку после решения СЛАУ:
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
     int n=5;
     double **a, *b, *x, r, c, s, q;
     int i, j, d, p, m, k;
---------------------//----------------------
     double nev, del, z, summ;
 
    for (i=1; i<=n; i++)
        {
            summ=0;
 
            for (j=0; j<=n; j++)
                {
                   summ += a[i][j]*x[j];
                }
 
            nev = fabs(b[i]-summ);
 
            cout << setw(20) << summ << setw(20) << nev << endl;
 
            z+= nev;
        }
 
        del= z / n;
 
        cout << "Neviazka:" << del << endl;
Высчитывает в общем верно, но если переменные "nev" "del" по итогам расчётов получаются 0, то вместо нуля выводятся числа на подобии этого: 3,84005е-308. Подскажите в чём проблема и как от этого избавиться?
З.Ы. если перед выводом переменных добавить округление (del = floor(del+ .5)), то всё получается норм, но не очень хочется костылями такими пользоваться.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 00:19     Вместо нуля выводит непонятное число
Посмотрите здесь:

Вывод длинного числа вместо нуля C++
C++ Почему выводит красные квадратики вместо Backspace?
Выдает непонятное число!С++ C++
вывод, вместо нуля, непонятного числа C++
Выводит непонятное число C++
Оператор if (для чисел от нуля до пяти программа выводит на экран тексотовое название числа) C++
Вместо результата выводит непонятное число C++
Программа выводит что-то непонятное C++
C++ выводит между результатом непонятное число
Вместо значений массива в cout выводит адреса C++
C++ Определить, равно ли число (двумерного массива) нулю. Если равно, то вместо нуля записываем указанный символ
C++ Выводит INF вместо значения

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MyMind
25 / 25 / 7
Регистрация: 14.05.2013
Сообщений: 68
18.05.2013, 01:12     Вместо нуля выводит непонятное число #2
попробуйте вместо этого
C++
1
 double nev, del, z, summ;
написать это
C++
1
 double nev, del, z = 0, summ;
Genn55
359 / 206 / 38
Регистрация: 26.12.2012
Сообщений: 689
18.05.2013, 02:02     Вместо нуля выводит непонятное число #3
Проблема в представлении double в памяти.В процессе вычислений в каком то далеком знаке после запятой появляется значащяя цифра вот и появляется подобная запись в экспоненциальном виде.Приходится округлять.По этому поводу написано много различных статей и мнения расходятся.Так что пока так.Либо floor,либо setprecision(8) в потоке вывода.
MrGluck
Ворчун
Эксперт CЭксперт С++
6634 / 3825 / 502
Регистрация: 29.11.2010
Сообщений: 10,111
18.05.2013, 05:02     Вместо нуля выводит непонятное число #4
Цитата Сообщение от Shagron Посмотреть сообщение
del= z / n;
где проверка деления на 0?

Добавлено через 1 минуту
Проблема в том, что 0 это вовсе не 0, а очень мизерное число. В джаве с этим еще хуже, на С++ ноль еще выдерживает несколько изменений
Yandex
Объявления
18.05.2013, 05:02     Вместо нуля выводит непонятное число
Ответ Создать тему
Опции темы

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