простейший вопрос по turbo C++

dimon72

Как вывести большое число с помощью функции printf?
Какие только буквы не ставил после % - ничего не помогает.
Например:

#include <stdio.h>
int main
{
int a=100000;
printf("%d\n",a); /* какой шаблон использовать?*/
return 0;
}

klyv

а что выводит? - вроде, %d и надо...

ppplva

А не 16-ли битный там int ?

okunek

попробуй %ld

dimon72

Пробовал. Для 100000 выводится число -2036300128 :(

okunek

а что с %d выводится?

dimon72

-31072

okunek

тады тебе long int нужно юзать, если он 32-битный и выводить его с %ld

klyv

Кстати, а в нём справки разве нету? что она говорит? :)

dimon72

Понял, спасибо.

dimon72

Что-то непонятна мне справка в TC. В данном случае отображает только общую информацию про printf. Сделал long int и %id- заработало! :)

dimon72

А как выводить очень большие числа? Скажем, факториал 13 уже неправильно выводит.

okunek

либо в тип с плавающей точкой записывать, тогда скорей всего пойдет потеря точности, либо если нету целых типов, куда число поместится, писать свой тип и свою функцию вывода

dimon72

Можно ли на Турбо Си нормально посчитать факториал числа, например, такой ф-цией:

long int fctrl(int n)
{
return n==1 ? 1 : fctrl(n-1)*n;
}

okunek

Да блин, тут не зависит от компилятора, в любом случае у встроенного типа есть пердел и если хочется этот пердел преодолеть, то нужно писать свой тип целых чисел. Ты нигде со стандартным int-ом и даже long int-ом не посчитаешь такой функцией, например, факториал 100.

dimon72

Понятно. А можно простейший пример того, как написать "свой тип"? Скажем, для вычисления того же факториала?

okunek

в google их валом

Werdna

Аффтар, почему на некрофилию потянуло?
Да, на самом деле тебе нужна всего лишь либа для работы с очень-очень длинными числами, которая посимвольно работает. Такие есть.

mkrec

скорее всего, ему этого не нужно (хотя если нужно - то твой совет безусловно верен). Я имею в виду, что есть лишь очень узкий специфический класс задач, где требуется знать число с абсолютной точностью. Ни для каких инженерных (физических, химических, лингвистических, биологических, технических и т.п.) приложений это никогда и в принципе не нужно.

salora

да ты задолбал, аффтар. Юзай нормальный компилятор.

yolki

аффтор, присоединяюсь к предыдущим ораторам. Нахрена использовать говно 20-летней давности, когда есть нормальные _современные_ компиляторы? даже бесплатные. даже под ДОС! даже с графикой! а?
www.openwatcom.org - в первую очередь.

apl13

Нахрена использовать говно 20-летней давности, когда есть нормальные _современные_ компиляторы?
Ностальгия. :byeforev:
Я вот тоже все по диплому писал исключительно на Borland Pascal (ну, правда, тогда я больше ни на чем писать не мог, да и не на чем было... :lol:).

slonishka

щас поди эксепшены кидаешь вовсю при проверке правил бизнес-логики. %)

apl13

Какие эксепшены, в натуре, братан? :kruto:
Оставить комментарий
Имя или ник:
Комментарий: