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

Создать отдельный стек для функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в алгоритме сортировки http://www.cyberforum.ru/cpp-beginners/thread395131.html
Пожалуйста укажите мне ошибку в реализуемом мною алгоритме сортировки #include <iostream> using namespace std; int main() {int x=0,a={2,3,1,9,4,6,5,8,7,0},n=10; for(int i=1;i<n;i++)
C++ while, do-while алгоритм , десятичная запись цифр Здравствуйте, помогите пожалуйста с заданием. Нужно на днях уже сдавать,а как сделать совсем не понимаю ((. На основе разработанного алгоритма в среде Visual Studio написать консольную программу на... http://www.cyberforum.ru/cpp-beginners/thread395128.html
В каждой строке матрицы Z(5,6) сдвинуть все элементы вправо на один разряд C++
Люди добрые, помогите. В каждой строке матрицы Z(5,6) сдвинуть все элементы вправо на один разряд (циклически). Если при этом в последнем столбце оказался ноль, то заменить его числом P, введённым с...
массив символов (строки) C++
Ребят, подскажите как реализовать: нужно проверить встречаются ли в слове "привет", символы из слова "ракета" если символы не встречаются (т.е. ввели "привет" и "как"), то вывести это первое слово...
C++ Сделать структурный массив.дан имя,адрес,номер дома,квартиры,телефон.Вывести студентов у которых нет телефона! http://www.cyberforum.ru/cpp-beginners/thread395112.html
сделать структурный массив.дан имя,адрес,номер дома,квартиры,телефон.Вывести студентов у которых нет телефона! это задача вот что сделал я #include<iostream.h> #include<conio.h>...
C++ Приложение win32 Собсно вот в чем задание: "В ресурсном файле задать три битовых образа. В клиентской области окна разместить три нажимаемые кнопки (pushbutton), по нажатию которых про-исходит смена выводимого в... подробнее

Показать сообщение отдельно
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
30.11.2011, 19:14
Цитата Сообщение от kravam Посмотреть сообщение
Он спотыкается на данных c_n_k(40, 19)
double возвращается правильный
во всяком случае на программу

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
static int round_value(double value)
{
   double val = floor (value + 0.5); 
   printf ("%f\n", val);
   return int(val);
}
 
unsigned c_n_k (unsigned n, unsigned k)
{
   double val = 1.;
   unsigned i;
 
   for (i=1;i<=k;++i)
   {
      val *= 1. * (n - k + i) / i;
   }
   printf ("%f\n", val); 
 
   return (unsigned)round_value (val);
}
 
int main()
{
   unsigned n = 40, k = 19;
   printf ("(%u, %u) = %u", n, k, c_n_k(n, k));
   return 0;
}
Bash
1
2
3
131282408400.000000
131282408400.000000
(40, 19) = 2147483648
131282408400 совпадает с тем, что дает
http://joemath.com/math124/Calculator/factorial.htm
http://www.calculatorpro.com/combination-calculator/

просто для int'a мантисса переполняется
а погрешности с double вообще практически нету
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.