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

Почему выводит неверный результат при вычислении произведения? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Изменение каждого бита WAV-файла - файл "портится" http://www.cyberforum.ru/cpp-beginners/thread1236285.html
Нагуглил здесь https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ что данные в формате wav начинаются с 44 байта. Из файла я получаю байтовый массив. Изменяю младший бит, например, в первом байте данных, то есть в 44-ом, сохраняю файл, но он уже не воспроизводится. Не могу разобраться с этой структурой. Может кто шарит в этом? Мне нужно в каждом байте данных изменить младший бит так,...
C++ Как сделать что бы программа всегда была "поверх" всех окон какую команду в скрипте нужно ввести, что бы программа была по верх всех окон? Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread1236255.html
C++ Как соединить несколько модулей с помощью #include?
Очередная тема из разряда "просвети нуба" ;) Допустим, у меня есть три отдельных модуля, скажем main, ref1 и ref2. Отсюда получается 6 файлов (cpp и h для каждого) тогда: main.cpp: #include "main.h" main() { ... }
Обработка значений, введенных пользователем C++
Проблема вот в чем, есть (например) команда в скрипте - "system("start www.google.com");", как вместо google, поставить слово которое напишет пользователь (извините за столь глупый вопрос,но я только начинаю) Заранее спасибо
C++ Ошибка: i: необъявленный идентификатор http://www.cyberforum.ru/cpp-beginners/thread1236206.html
нужно если d>9 присвоить ss соотв по порядку букву англ алф #include <iostream> using namespace std; void main (){ int d=36; char ss; if (d>9){ for (char l='A',int i=10; i<=d ;d++,l++) ss=l; }
C++ Как подключить программу к строке в браузере Помогите пожалуйста, как подключить программу к любой строке, для ввода, в браузере? подробнее

Показать сообщение отдельно
ValeryS
Модератор
6482 / 4948 / 455
Регистрация: 14.02.2011
Сообщений: 16,389
30.07.2014, 21:37     Почему выводит неверный результат при вычислении произведения?
Цитата Сообщение от Fobos315 Посмотреть сообщение
А как же указанный мною double в выражении?
ты про это?
Цитата Сообщение от Fobos315 Посмотреть сообщение
s*=(1+(double)pow(1/2,2*n));
так это бесполезно pow и так возвращает double
смотри по шагам
2*n вычисляется целочисленное умножение оба аргумента целочисленные
1/2 вычисляется целочисленное деление оба аргумента целочисленные результат 0
в функцию pow передается два целочисленных аргумента
получаем pow(0,2) при n равной единице
результат 0
и только потом ты приводишь результат к double
нужно приводить аргументы
или как сказал
Цитата Сообщение от Firework Посмотреть сообщение
/2 даёт 0. Т.к. деление целочисленное. Замените на 1.0/2.
или так

C++
1
s*=(1+(double)pow((double)1/2,2*n));
кстати на моем VS2008 выдает ошибку при такой записи
C++
1
(1+(double)pow(1/2,2*n));
1>c:\users\noutdns\documents\visual studio 2008\projects\testproperty2008\testproperty2008\testproperty2008.cpp(74) : error C2668: pow: неоднозначный вызов перегруженной функции
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(575): может быть 'long double pow(long double,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(527): или 'float pow(float,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(489): или 'double pow(double,int)'
1> при попытке сопоставить список аргументов '(int, int)'
поскольку нет такой функции pow(int,int)
нужно явно приводить
 
Текущее время: 00:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru