ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1001. Обратный корень

C: Whats wrong with task?
Послано Nick 11 фев 2018 02:01
I've created file with tests, it seems all checks passes locally, but not in Judge
here is my code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef struct list_node{
    long int number;
    struct list_node * previous;
} list_node_t;

list_node_t * create_root(long int number);
list_node_t * create_list(long int number, list_node_t * previous);

int main() {
    long int a;
    list_node_t * current = NULL;
    while (scanf("%ld", &a) != EOF) {
        if (current == NULL) {
            current = create_root(a);
        } else {
            current = create_list(a, current);
        }
    }

    while (current != NULL) {
        printf("%.4Lf\n\r", sqrtl(current->number));
        current = current->previous;
    }

    return 0;
}

list_node_t * create_root(long int number)
{
    list_node_t *lt = malloc(sizeof(list_node_t));

    lt->number = number;
    lt->previous = NULL;

    return lt;
}

list_node_t * create_list(long int number, list_node_t * previous)
{
    list_node_t *lt = create_root(number);

    lt->previous = previous;

    return lt;
}
Re: C: Whats wrong with task?
Послано Diego Iturra 22 мар 2019 07:43
the problem is just calculate the square root in reverse order, it is unnecesary create a linked list or use pointer