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

Непонятка со скобками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Можете помочь дописать программу, неправильно работает. http://www.cyberforum.ru/cpp-beginners/thread448789.html
Вариант 8 Даны целые массивы А, B и значения R и F. Каждый массив пpеобpазовать по пpавилу: компоненты с четными номеpами, пpедшествующие наибольшему компоненту массива, заменить на значение R...
C++ Программа вычисления значений функции y= sin(x) Доброго времени суток. У меня есть вот такая задачка: Написать программу вычисления значений функции y = sin(x), с помощью разложения функции в степенной ряд... http://www.cyberforum.ru/cpp-beginners/thread448788.html
Проблема в задаче,подскажите. C++
Всем привет,в общем,задание: В целочисленном массиве из n элементов найти наиболее длинную цепочку одинаковых подряд стоящих элементов.Но обращение к элементам нужно сделать через указатели.Проблема...
C++ В классе создать ссылку на список
У меня есть список: struct queue // описание списка { int pnum; // количество протонов char name; // имя элемента queue *next; ...
C++ использования операторов http://www.cyberforum.ru/cpp-beginners/thread448768.html
Всем привет, нужна помощь, буду очень благодарен. 1.(использования оператора switch) По заданному числовому коду учебной группы, введенного с клавиатуры, вывести на экран количество студентов в...
C++ Вычисление суммы квадратов чисел от 1 до 20 Всем привет, нужна помощь, буду очень благодарен. 1.(использования оператора switch) По заданному числовому коду учебной группы, введенного с клавиатуры, вывести на экран количество студентов в... подробнее

Показать сообщение отдельно
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
19.02.2012, 14:45
C++
1
2
3
4
5
6
7
8
9
  const double d = 5;
  const int i1 = 5;
  const int i2 = 2;
 
  const double res1 = d * i1 / i2;
  const double res2 = d * (i1 / i2);
 
  cout << res1 << endl; // 12.5
  cout << res2 << endl; // 10.0
В случае без скобочек порядок выполнения такой:
переменная типа дабл умножается на переменную типа инт. результат - значение типа дабл. потом дабл делится на инт.
5 * 5 / 2 = 12.5

Во втором случае сперва вычисляется выражение в скобках:
переменная типа инт делится на переменную типа инт. результат выражение - интовое значение.
т.е. 5 / 2 = 2 т.к. интовые значение - это целые числа.
далее дабл умножается на этот результат, т.е. 5 * 2 = 10;

Вот в вашем примере тоже самое. Все переменные, которые взяли в дополнительные скобки похоже имеют тип инт. Отсюда погрешность при целочисленной арифметике.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.