Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

18.05.2013, 00:19. Просмотров 1223. Ответов 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)), то всё получается норм, но не очень хочется костылями такими пользоваться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 00:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вместо нуля выводит непонятное число (C++):

Вместо результата выводит непонятное число - C++
Сделал программу которая должна высчитывать по формуле, но она высчитывает не совсем то число. int chislo =...

Выводит непонятное число - C++
При выполнение программы всегда выводится на экран число 2686744. Как это исправить? Работаю в среде Dev Cpp. #include&lt;stdlib.h&gt; ...

выводит между результатом непонятное число - C++
нужно вывести: 1й столбец сверху вниз, 2й столбец снизу вверх и т.д. если ввожу матрицу 1 2 3 4 5 6 7 8 9, то результат выдает:...

Определить, равно ли число (двумерного массива) нулю. Если равно, то вместо нуля записываем указанный символ - C++
Вот что нужно написать кодом: сравнить, равно ли число (двумерного массива) нулю. Если равно, то вместо нуля записываем, например,...

Программа выводит что-то непонятное - C++
Помогите пожалуйста, подскажите, почему программа бред выводит? Вот программа. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

вывод, вместо нуля, непонятного числа - C++
вот код #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { cout &lt;&lt;&quot;x&quot; &lt;&lt; &quot;;&quot; &lt;&lt; &quot;ch(x)&quot; &lt;&lt;...

3
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;
0
Genn55
374 / 221 / 41
Регистрация: 26.12.2012
Сообщений: 724
18.05.2013, 02:02 #3
Проблема в представлении double в памяти.В процессе вычислений в каком то далеком знаке после запятой появляется значащяя цифра вот и появляется подобная запись в экспоненциальном виде.Приходится округлять.По этому поводу написано много различных статей и мнения расходятся.Так что пока так.Либо floor,либо setprecision(8) в потоке вывода.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
18.05.2013, 05:02 #4
Цитата Сообщение от Shagron Посмотреть сообщение
del= z / n;
где проверка деления на 0?

Добавлено через 1 минуту
Проблема в том, что 0 это вовсе не 0, а очень мизерное число. В джаве с этим еще хуже, на С++ ноль еще выдерживает несколько изменений
0
18.05.2013, 05:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2013, 05:02
Привет! Вот еще темы с ответами:

Вывод длинного числа вместо нуля - C++
предполагаю что проблема мелкая, но либо меня гугл забанил, либо ввожу в поиск не то.. перейдем к делу, 1) программа создает...

Выдает непонятное число!С++ - C++
//В массив A занесены натуральные числа. Найти сумму тех //элементов, которые кратны данному К. #include &lt;iostream.h&gt; #include...

Оператор if (для чисел от нуля до пяти программа выводит на экран тексотовое название числа) - C++
Составить программу, которая принимает числа с клавиатуры. Ддя чисел от нуля до пяти программа выводит на экран тексотовое название числа.

Выводит INF вместо значения - C++
Не ругайте за стиль , только учусь. проблема с выводом значения X строка 63,68. Вроде 97/97 должно быть 1, он даёт INF // решение систем...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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