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

Расчеты - C++

Восстановить пароль Регистрация
 
GraBLYA
-46 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
25.04.2013, 18:03     Расчеты #1
Простейший шаблон для вывода таблицы 2ой и 3ей степени чисел от 1 до 10. Проще только "Hello, World!" Что может пойти не так? А вот у меня пошло. Такая мелочь может развалить огромный проект... В чем дело?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Таблица для кубов и квадратов от  0 до 10
#include <iostream.h>
#include <math.h>
main() 
{
int x,kva,kub ; // x - число, sqr - квадрат, kub - куб
for (x=1;x<=10; x++)
{
    kva=pow(x,2); kub=pow(x,3);
cout<<x<<"\t"<<kva<<"\t"<<kub<<endl;
}
 
return 0;
}
Окно выполнения:
http://3.firepic.org/3/images/2013-0...j3pcdlxytu.jpg
Еще интересно почему в 1 случае в 2х местах недочет, а в 2 ом только 1?
Перезапускал несколько раз.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
25.04.2013, 18:08     Расчеты #2
У меня все нормально.
Попробуй для квадрата использовать x*x, а для куба x*x*x
GraBLYA
-46 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
25.04.2013, 18:11  [ТС]     Расчеты #3
Цитата Сообщение от lazybiz Посмотреть сообщение
У меня все нормально.
Попробуй для квадрата использовать x*x, а для куба x*x*x
Тут дело не в поиске решений, а почему это произошло. с float все работает корректно. У тебя с моим исходником все нормально рассчитывает?
ijonhson
 Аватар для ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
25.04.2013, 18:11     Расчеты #4
это какой-то глюк pow()
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
25.04.2013, 18:12     Расчеты #5
Цитата Сообщение от GraBLYA Посмотреть сообщение
У тебя с моим исходником все нормально рассчитывает?
Да, я же написал.
GraBLYA
-46 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
25.04.2013, 18:13  [ТС]     Расчеты #6
Цитата Сообщение от ijonhson Посмотреть сообщение
это какой-то глюк pow()
Это зависит от среды или библиотек? Использую С-Free 5.
И доверяй после этого подключаемым библиотекам
veverix
39 / 39 / 2
Регистрация: 14.09.2012
Сообщений: 85
25.04.2013, 18:16     Расчеты #7
Если я не ошибаюсь, функция pow реализуется при помощи разложения в ряд, поэтому в некоторых случаях может неправильно округлить. + обычно функция pow принимает значения с плавающей точкой. Попробуйте использовать явное приведение типа:

C++ (Qt)
1
kva=pow((double)x,2); kub=pow((double)x,3);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2013, 18:21     Расчеты
Еще ссылки по теме:

C++ почему не делает расчеты в "с="? код с++
Перегрузка операторов: Можно ли вынести "тело" оператора (расчеты) из H в CPP? C++
Программа производит расчеты только по одному из двух введенных значений C++

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

Или воспользуйтесь поиском по форуму:
GraBLYA
-46 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 62
25.04.2013, 18:21  [ТС]     Расчеты #8
Цитата Сообщение от veverix Посмотреть сообщение
Если я не ошибаюсь, функция pow реализуется при помощи разложения в ряд, поэтому в некоторых случаях может неправильно округлить. + обычно функция pow принимает значения с плавающей точкой. Попробуйте использовать явное приведение типа:

C++ (Qt)
1
kva=pow((double)x,2); kub=pow((double)x,3);
С вещественными данными работает отлично, просто, вроде же, с целыми проще все должно быть, а тут все наоборот.

Всем Спасибо за участие ))
Yandex
Объявления
25.04.2013, 18:21     Расчеты
Ответ Создать тему
Опции темы

Текущее время: 05:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru