PphantomОк, я наверное не могу объяснить нормально, что мне нужно конкретно. 0 не может останавливать ввод.
Вот оригинальное условие задачи.
Цитата:
Исходные данные
Входной поток содержит набор целых чисел A_i (0 ≤ A_i ≤ 10^18), отделённых друг от друга произвольным количеством пробелов и переводов строк. Размер входного потока не превышает 256 КБ.
Результат
Для каждого числа Ai, начиная с последнего и заканчивая первым, в отдельной строке вывести его квадратный корень не менее чем с четырьмя знаками после десятичной точки.
Исходные данные
1427 0
876652098643267843
5276538
Результат
2297.0716
936297014.1164
0.0000
37.7757
Уже как бы разобрался с проблемой. Тестирующая система принимает задание как правильное если использовать код с таким считыванием:
#include <iostream>
#include <iomanip>
using namespace std;
struct stack
{
double value;
stack *next;
} *head;
stack *add(double);
stack *output();
int main()
{
double value;
while (cin >> value)
head = add(value);
output();
system("pause");
return 0;
}
stack *add(double value)
{
stack *str = new stack;
str->value = value;
str->next = head;
return str;
}
stack *output()
{
stack *str;
double value;
while (head != 0)
{
str = head;
value = sqrt(head->value);
cout << fixed << setprecision(4) << value << endl;
head = head->next;
delete str;
}
return NULL;
}
-- 12.04.2015, 22:27 --P.S. Не обижайтесь, но, вообще говоря, при наличии проблем такого уровня заниматься олимпиадным программированием несколько рано.
Не думаю. Просто я только начал знакомится с олимпиадным программированием и такой ввод данных для меня необычен. Я не совсем понимаю, как тестирующая система останавливает ввод данных. Это такие особенности олимпиадного программирования с которыми нужно один раз разобраться и все.