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

Квадратный корень из из типа int - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверить истинность высказывания: «Ферзь за один ход может перейти с одного поля на другое» http://www.cyberforum.ru/cpp-beginners/thread1101734.html
Даны координаты двух различных полей шахматной доски x1, y1, x2, y2 (целые числа, лежащие в диапазоне 1–8). Проверить истинность высказывания: «Ферзь за один ход может перейти с одного поля на другое».
C++ Нахождение узла дерева, используя прямой обход подскажите, пожалуйста, что не так в функции. компилится, но вылетает потом.. мне нужно найти узел бинарного дерева при прямом обходе, по счету этот узел должен быть count/2-1 (count-число всех вершин).функция должна вернуть узел. struct node { int info; //Информационное поле node *l, *r;//Левая и Правая часть дерева }; /*ФУНКЦИЯ ВЫБОРА ЭЛЕМЕНТА*/ node* findMiddleNode(int count,... http://www.cyberforum.ru/cpp-beginners/thread1101733.html
Написать итерационную функцию вычисления ряда Фибоначчи C++
Написать итерационную функцию вычисления ряда Фибоначчи. Помогите пожалуйста.
Консольный чат не принимает сообщение по сети от такого же экземпляра C++
Писал точно такой же консольный чат на Си, в основном потоке отправлял сообщения функцией send(), а в дополнительном принимал функцией recv(), то есть recv() не блокировала работу всей программы. Попробовал написать тоже самое, но в ООП стиле на С++, но при этом столкнулся с проблемой - не принимаются сообщения, при это проверил работоспособность, сконнектившись с чатом, написанным на Си - все...
C++ Как C++ распознать кодировку файла с расширением-и создавать такие же http://www.cyberforum.ru/cpp-beginners/thread1101711.html
как С++ распознать кодировку файла с расширением- и создавать такие же к примеру game.dat или программа AssetCacheBuilder.exe что создает файл asset.dat меня интересует код как это происходит и создать похожую и улучшить ей модернезировать
C++ Динамическое выделение памяти. Не получается заполнить массив структур Доброго времени суток, никак не получается справится с проблемой: не получается заполнить массив структур struct rec_{int i; char *a;} из n элементов (n-число записей в массиве структур) следующими данными: a указывает на введенную с клавиатуры строку символов, которая сохраняется в динамическом массиве с минимально необходимой для хранения введенной строки длиной. Помогите, пожалуйста (идея... подробнее

Показать сообщение отдельно
DrOffset
6461 / 3835 / 886
Регистрация: 30.01.2014
Сообщений: 6,630
21.02.2014, 00:09     Квадратный корень из из типа int
Функция sqrt принимает только вещественные числа, поэтому происходит преобразование (преобразование int -> double, один из видов автоматического преобразования разрешенных в С++).
В случае с делением n/2 - тут оба аргумента целочисленные, поэтому и результат целочисленный. Если сделать, например, n/2.0, то можно убедиться, что результат будет другой.

Добавлено через 9 минут
Цитата Сообщение от metaluga145 Посмотреть сообщение
а вот деление целого на целое - это вопрос договоренности и удобства.
Вопрос, который четко описан в стандарте:
5/10
Many binary operators that expect operands of arithmetic or enumeration type cause conversions and yield
result types in a similar way. The purpose is to yield a common type, which is also the type of the result.
This pattern is called the usual arithmetic conversions, which are defined as follows:
— If either operand is of scoped enumeration type (7.2), no conversions are performed; if the other
operand does not have the same type, the expression is ill-formed.
— If either operand is of type long double, the other shall be converted to long double.
— Otherwise, if either operand is double, the other shall be converted to double.
— Otherwise, if either operand is float, the other shall be converted to float.

— Otherwise, the integral promotions (4.5) shall be performed on both operands59.
Then the following rules shall be applied to the promoted operands:
— If both operands have the same type, no further conversion is needed.
— Otherwise, if both operands have signed integer types or both have unsigned integer types, the
operand with the type of lesser integer conversion rank shall be converted to the type of the
operand with greater rank.
— Otherwise, if the operand that has unsigned integer type has rank greater than or equal to the
rank of the type of the other operand, the operand with signed integer type shall be converted to
the type of the operand with unsigned integer type.
— Otherwise, if the type of the operand with signed integer type can represent all of the values of
the type of the operand with unsigned integer type, the operand with unsigned integer type shall
be converted to the type of the operand with signed integer type.
— Otherwise, both operands shall be converted to the unsigned integer type corresponding to the
type of the operand with signed integer type.
Как видно из написанного, если операнды одного типа, то никакого преобразования не происходит.
И если один из операндов вещественного типа - преобразование происходит к нему.
 
Текущее время: 18:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru