Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2007, 22:56   #1
RedWolf
 
Регистрация: 27.12.2007
Сообщений: 5
По умолчанию

Доброго времени суток) такая вот ситуация: сейчас вот писал прогу по числам Фибоначчи - в принципе работает, НО - когда вычисления доходят до порядка 46 - то значения каким то образом становятся отрицательными. Пробовал ставить условие, в котором умножал на (-1), однако порядок числа не меняется (остановился на 11) и дальше не идет; пробовал ставить long int - не помогает) помогите решить проблему - заранее благодарен!
вот код:
Код:
#include <stdio.h>
int main(){
        int k,p,t,N;
	k=0;
	p=1;
	t=0;
	scanf("%d",&N);
        while (t<=N)
	{

		p=k+p;
		k=p-k;
		t++;
                }
                printf("%d",k);
                return 0;
}
описался, - то есть не 46 порядок - а 46 итерация.Или просто если во входе стоит 46...

//Пользуемся кнопкой правка. Модератор.

Последний раз редактировалось AlDelta; 28.12.2007 в 01:38.
RedWolf вне форума Ответить с цитированием
Старый 27.12.2007, 23:33   #2
itisiam
аккаунт недоступен
Форумчанин
 
Регистрация: 23.01.2007
Сообщений: 107
По умолчанию

А вы что хотели - что бы он вам до бесконечности их считал? в переменную типа int (занимающую 4 байта) помещается число в диапазоне -2147483648.....2147483647 , а на значении 46 по видимому он из этого диапазона выходит (long int не помогает т.к. на 32 разрядных процессорах int эквивалентен long int` у)
ввел пароль, который мне не известен

Последний раз редактировалось itisiam; 27.12.2007 в 23:40.
itisiam вне форума Ответить с цитированием
Старый 29.12.2007, 10:37   #3
RedWolf
 
Регистрация: 27.12.2007
Сообщений: 5
По умолчанию

Понял, но, тем не менее, как сделать так, чтоб он быльшие числа выдавал?
RedWolf вне форума Ответить с цитированием
Старый 29.12.2007, 10:38   #4
RedWolf
 
Регистрация: 27.12.2007
Сообщений: 5
По умолчанию

Понял, но, тем не менее, возможно ли сделать так, чтоб он выдавал большие целые числа?
RedWolf вне форума Ответить с цитированием
Старый 29.12.2007, 11:18   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

тип данных другой использовать....
как правило для "длинной" арифметики используются спец. модули... где описаны длинные типы и работа с ними
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поставить оповещение в Access? xruss Microsoft Office Access 11 05.12.2008 10:27
ADO поставить метку в таблице... Roof БД в Delphi 5 16.08.2008 15:58
Как правильно снять отчет с данных? atman Microsoft Office Excel 2 01.02.2008 16:26
Подскажите, как поставить 2 ОС Красавчег))) Операционные системы общие вопросы 24 15.01.2008 21:28
Как атрибут поставить delphin100 Общие вопросы Delphi 9 14.01.2008 23:15