Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 3

неожиданный результат

02.03.2014, 00:37. Показов 1151. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не могу понять в чем проблема приложение рассчитывает по первым 2 условиям верно а по второму какую то хрень
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 <iostream>
#include <math.h>
using namespace std;
int main()
    {
    int i0, i;
    double i1,a,e,fobs;
    cout << "Введите i: ";
    cin>>i;
    cout << "Введите a: ";
    cin>>a;
    i0=i%2   ;
        if (i0 == 0 && a>0)  //тут все считается правильно согласно условия остаток равен нулю и а больше нуля
            {  
             e= i*sqrt(a);
             cout <<e<<endl;
            }
        else            
            if (i0 != 0 && a<0) // тут тоже все считает правильно остаток не равен нулю и а меньше нуля
                {
                fobs = fabs(a);
                e=(i/2)*sqrt(fobs)  ;
                cout <<e<<endl;
                }             
            
            else // а вот тут считает хрен знает как
                {
                i1=static_cast <double> (i);
                fobs = fabs(i1) * fabs(a);
                e=sqrt(fobs);
                cout <<e<<endl;
                }           
            system("pause");
            return 0;
    }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2014, 00:37
Ответы с готовыми решениями:

Неожиданный результат
Всем привет! Написал небольшую программу: #include &lt;iostream&gt; using namespace std; int main() { int x, a, b; x = a + b; ...

Функция acos (из math.h) выдает неожиданный результат
Столкнулся с необъяснимой ситуацией) double z=((_x2-_x1)*(_x3-_x1) + (_y2-_y1)*(_y3-_y1))/(sqrt((_x2-_x1)*(_x2-_x1) +...

Почему функция atoi возвращает неожиданный результат?
char chislo; int kol_OB; chislo = '2'; chislo = '4'; kol_OB = atoi(chislo); Почему kol_OB = 18?

4
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
02.03.2014, 00:54
Цитата Сообщение от snap492 Посмотреть сообщение
вот тут считает хрен знает как
Поподробнее можно? Со значениями переменных желательно.

Добавлено через 54 секунды
Цитата Сообщение от snap492 Посмотреть сообщение
C++
1
i1=static_cast <double> (i);
Это я бы заменил на это:
C++
1
i1=i*1.0;
Сие хоть понятно как себя поведет.
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
02.03.2014, 00:56
int в double неявно преобразуется без потери данных. поэтому явные касты и прочие хитрости - лишнее.
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 3
02.03.2014, 02:26  [ТС]
Цитата Сообщение от snap492 Посмотреть сообщение
вот тут считает хрен знает как
Поподробнее можно? Со значениями переменных желательно.

Добавлено через 54 секунды
Цитата Сообщение от snap492 Посмотреть сообщение
Код C++
1
i1=static_cast <double> (i);
Это я бы заменил на это:
Код C++
1
i1=i*1.0;
Сие хоть понятно как себя поведет.
пример берем не четное 9 так как оно легко выводится в целое из под корня и берем положительное число 4 данные переменные несоответствуют значениям if следовательно должно считаться по второму else в ответе мы должны получить 6 а программа выдает ответ 8
а насчет явного преобразования типов вроде тоже все понятно
int в double неявно преобразуется без потери данных. поэтому явные касты и прочие хитрости - лишнее.
согласен но MS Visual C++ 2008 с использованием math.h ругается что с функцией fabs (i) не ясно какой тип float, double, long double.

Добавлено через 25 минут
хз что произошло но как то рассосалось само по себе теперь решает верно может был глюк компилятора какой то
всем спс
модераторы прошу закрыть тему
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
02.03.2014, 02:32
Лучший ответ Сообщение было отмечено snap492 как решение

Решение

fabs(i) - тут да. неоднозначность.
double i1=static_cast <double> (i); // тут явное преобразование лишнее. можно без него:
double i1=i;
ну и если вы i1 завели только для разрешения этой неоднозначности, то лучше ее разрешать
в точке вызова этой функции, где явный каст вполне уместен:
fabs(static_cast<double>(i)); // не нужны посредники вроде i1;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2014, 02:32
Помогаю со студенческими работами здесь

Неожиданный результат при сравнении производительности вектора и обычного массива
Добрый день. Ради интереса сравнил проиводительность вектора с обычным массивом и получил неожиданный результат. #include...

Неожиданный результат при выводе значения переменной, несмотря на инкремент
подскажите почему значения a и с начинаются с 1 а не с 2 стоит же &quot;++&quot; int a = 1; void f() { int b = 1; // инициализируется...

Неожиданный конец файла
Приветствую, у меня такая проблема: пишу шифратор по лабораторным на с++, нужно сначала зашифровать текст из txt файла, а потом прогнав еще...

Неожиданный консольный вывод (упражнения 3 к главе 6 книги Стивена Праты)
:-| Вообщем имеется код (решение 3 упражнения к главе 6 книги Прата): #include &lt;iostream&gt; #include&lt;cstdlib&gt; ...

Задачу создать 2-мя способами:1) передавать результат работы подпрограммы через результат, возвращаемый функци
Здравствуйте, дорогие форумчане! Будьте добры, помогите не совсем опытному юзеру разобраться с небольшим непониманием : дано условие (см....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru