Блог пользователя MakCoder

Автор MakCoder, 14 лет назад, По-русски
scanf("%I64d", &n);

x = sqrt(n);
cout<<x;

printf("\n%I64d", int(sqrt(n)));


если в input'е вести допустим "10000" то в output'е будет

"100

 100" но если в том же пасе убрать строку сout<<x;

то пас будет таков

scanf("%I64d", &n);

x = sqrt(n);

printf("\n%I64d", int(sqrt(n)));

и ответ на тот же тест будет

"

8630582025050390628"

почему???

 


  
  • Проголосовать: нравится
  • -15
  • Проголосовать: не нравится

14 лет назад, скрыть # |
Rev. 3  
Проголосовать: нравится +1 Проголосовать: не нравится
printf("\n%I64d", (long long)sqrt(x)); - вот так у меня заработало
14 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
printf со стека берет необходимое количество байт, определенной спецификациями вывода. 

14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

не понимаю почему же без cout'a printf выводит не правильно?? а с ним правильно