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

ошибка в коде - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти простое число в массиве http://www.cyberforum.ru/cpp-beginners/thread589667.html
Как в С++ в массиве найти ПРОСТОЕ число (которое делится только на себя и на единицу) ? Буду очень благодарен
C++ Вещественные числа По заданному вещественному х(х<3) вычислить значение http://www.cyberforum.ru/cpp-beginners/thread589658.html
C++ Паттерн "Одиночка" и динамическая память
Приветствую всех! Набросал паттерн "Одиночка", при конструировании есть динамическая память, также статическое поле (имеется в виду static_field, а не сам instance). Подобный объект нужно будет внести в другую, намного более сложную задачу. Нет ли в реализации ничего опасного/плохого? Знаю, что если код компилируется и работает, то это еще ничего не значит, так как могут быть проблемы,...
Массивы и минимально-максимальные значения C++
Ребят,завтра контрольная,а я совсем забыла о своих домашних задачах:(Пожалуйста,помогите кому это не сложно и не жалко:(На самом примитивном С++ наподобие #include <iostream.h> #include <conio.h> void main() { clrscr(); int *A,N; cin>>N; A=new int; for (int i=0;i<N;i++)
C++ Вычислить значение полинома http://www.cyberforum.ru/cpp-beginners/thread589641.html
Полином P(x)=C1*x^ N1+C2*x^ N2+…+Ck*x^Nk представляется в виде линейного динамического списка. Вычислить значение полинома P(x,y)=C1*x^N1*y^M1+C2*x^N2*y^M2+… …+Ck*x^Nk*y^Mk при фиксированном значении переменной x . Например P(x,y)=5*x^4*y^8 + 7*x^2*y^5 => P(2,y) =5*2^4*y^8 + 7*2^2*y^5= = 80*y^8 + 28*y^5 . Желательно с рекурсией... Заранее спасибо!Буду благодарна всем кто поможет =3
C++ Определить количество 8-значных чисел, у которых сумма цифр... Дано натуральное число N. Определить количество 8-значных чисел, у которых сумма цифр в цифровой записи числа была меньше, чем N. Если таких чисел нет, то вывести слово "НЕТ". подробнее

Показать сообщение отдельно
4AKE
29 / 29 / 12
Регистрация: 20.12.2010
Сообщений: 115
28.05.2012, 22:16     ошибка в коде
День добрый. Есть код (не рабочий):
C++
1
2
3
4
5
6
7
8
#include<iostream>
using namespace std;
 
int main()
{
  float n=0.5;
  cout<<((n-2.0)*(n<2.0))<0.1;  // не поставил ( )
}
Dev-C++ выдает в сообщении об ошибке:
C++
1
((((double)n) - 2.0e+0) * 0.0)))) < 1.00000000000000005551115123125782702118158340454e-1
онлайн компиляторы выдают:
C++
1
2
3
4
5
//только один написал:
(((((double)n) - 2.0e+0) * ((n < 2.0e+0f) ? 1.0e+0 : 0.0))) < 1.0000000000000001e-1
 
//в остальных случаях:
(((((double)n) - 2.0e+0) * ((n < 2.0e+0f) ? 1.0e+0 : 0.0))) < 1.00000000000000005551115123125782702118158340454e-1
Вопрос: Зачем компилятор так преобразует выражение? Почему "мусор" в дроби числа 0.1 одинаков при обработке разными компиляторами? (я думал мусор там рандомен и будет отличаться на "разных" компах).
Извиняйте, если не правильно поставил вопрос.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru