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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2011, 12:35   #1
Stas_SPb
Пользователь
 
Регистрация: 15.07.2009
Сообщений: 15
По умолчанию Ошибка temp=temp/2

Добрый день!
BC 3.1
Ошибка при делении переменной типа double:
double temp;
***
temp=temp/2;
При отлаживании в строчке неверно вычисляется результат
Значение результата некорректно: 1,26....e33
До деления значение temp равно 64800

Куда копать?
ЗАранее спасибо!
Stas_SPb вне форума Ответить с цитированием
Старый 06.10.2011, 16:14   #2
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Код:
#include <stdio.h>

int main(void)
{
  double temp = 64800.0;
  temp = temp / 2;

  printf("%f", temp);

  return 0;
}
Так все правильно.
Скорее всего у вас ошибка в другом месте.
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 06.10.2011, 16:17   #3
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

double temp; - скорее всего в начале не иницаилизированно и поэтому там мусор. Присвойте начальное значение и должно получиться. double temp = 0; или какое вам там нужно мы не знаем
Guy вне форума Ответить с цитированием
Старый 06.10.2011, 16:19   #4
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Guy Посмотреть сообщение
double temp; - скорее всего в начале не иницаилизированно и поэтому там мусор.
Цитата:
Сообщение от Stas_SPb Посмотреть сообщение
До деления значение temp равно 64800
______________________
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 06.10.2011, 16:26   #5
Stas_SPb
Пользователь
 
Регистрация: 15.07.2009
Сообщений: 15
По умолчанию

Да не, дело в том, что размер программы дошел до 128 кБайт. Слишком много переменных. Понятно, что в "пустой" программе деление пройдет нормально.
надо как-то модель памяти поменять или еще что-то такое. К сожалению, никогда раньше с таким не сталкивался: короткие программки в bc31 укладывались в рамки досовских ограничений, большие писал в других средах...
Stas_SPb вне форума Ответить с цитированием
Старый 06.10.2011, 17:22   #6
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Ага, проглядел. Но чудес не бывает... Мало информации, хотя бы функцию покажите и все строчки где с temp хоть что то происходит
Guy вне форума Ответить с цитированием
Старый 07.10.2011, 10:55   #7
Stas_SPb
Пользователь
 
Регистрация: 15.07.2009
Сообщений: 15
По умолчанию

Спасибо за помощь. Дело и правда в слишком большом количестве переменных, массивов. Убрал один из них, сразу все засчиталсь нормально!
Stas_SPb вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TEMP Dimarik Операционные системы общие вопросы 5 16.08.2011 16:06
Удаление содержимого в папке Temp xJohnx Помощь студентам 6 25.11.2010 08:53
Ошибка в temp... виноваты динамичсекие массивы или тип не тот или.. Shabalinuk C++ Builder 5 12.11.2010 12:38
Temp INI in RAM Altera Общие вопросы Delphi 5 17.02.2008 07:25
tess temp.db Bob Marley БД в Delphi 1 13.04.2007 08:55