Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Считаем float a=1e10, помогите разобрать, как считать такое. 
V
    Опции темы
Killer_13
Дата 26.6.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: 1
Всего: 1



Воттт, идет моя интенсивная подготовка к экзамену по "С", нужно хорошо научиться считать такие выражения, а я че т не пойму чуток как их считать, буду благодарен за подсказки, а так же где можно подробно почитать об этом

Код

# include <stdio.h>
int main() {
float a = 1e10, b = 1e10, c = 1e-10;

printf( "%f\n", 1 / 2 * a);
printf( "%f\n", a * ( a - b + c));
printf( "%f\n", a * ( a + c - b));
re
 

или например.
Код

# include <stdio.h>
int main(){
int x = 2, y, z; float a = 1e10, d;
x *= 3 + 2; printf( "%d\n", x);   тут 10, понял как считали (справа налево 3+2=5 и 5*2)
x *= y = z = 4; printf( "%d\n", x);     - почему тут получается 40???
y = a * x; printf( "%d\n", y);
d = a * x; printf( "%g\n", d);/* d=1e10*40 => 4e11 */ - почему так получается?
return 0;
}


С приоритетами операндов знаком, - перед глазами таблица. smile
PM MAIL   Вверх
zim22
Дата 26.6.2009, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Killer_13 @  26.6.2009,  18:22 Найти цитируемый пост)

x *= 3 + 2; printf( "%d\n", x);   тут 10, понял как считали (справа налево 3+2=5 и 5*2)
x *= y = z = 4; printf( "%d\n", x);     - почему тут получается 40???

потому что y == z == 4. x == 10.
 10*4==40



--------------------
PM MAIL   Вверх
Killer_13
Дата 26.6.2009, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: 1
Всего: 1



вот затупиииллл, действительно, а как на счет 
Код

float a = 1e10, b = 1e10, c = 1e-10;

пасиб
PM MAIL   Вверх
pan2004
Дата 27.6.2009, 12:14 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 2
Всего: 9



Цитата(Killer_13 @  26.6.2009,  18:38 Найти цитируемый пост)
а как на счет

экспоненциальная запись числа. Инженерным калькулятором пользовался?
en означает *10^n. Те говоря по другому, число после e означает колво нулей. Или на сколько знаков переставлять запятую(положительное число - вправо, отрицательное - влево).
1e10 == 10.000.000.000
1e-10 == 0,000.000.000.1


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.2947 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.