Вычислить обратный корень нескольких чисел - C (СИ)
Формулировка задачи:
Исходные данные
Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 10^18), отделённых друг от друга произвольным количеством пробелов и переводов строк. Размер входного потока не превышает 256 КБ.
Результат
Для каждого числа Ai, начиная с последнего и заканчивая первым, в отдельной строке вывести его квадратный корень не менее чем с четырьмя знаками после десятичной точки.
а вопрос в том,что правильно ли я написал?)
#include<conio.h>
#include<stdio.h>
#include<math.h>
main()
{float i,A1,A2;
printf("A2=");scanf("%f",&A2);
printf("A1=");scanf("%f",&A1);
if(A2<=pow(10,18)){
for(i=A2;i>=A1;i--)
printf("\n%.4f",sqrt(i));
}
return 0;
}Решение задачи: «Вычислить обратный корень нескольких чисел»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char** argv)
{
long long *array, x, size = 0;
while(scanf("%lld", &x) != EOF)
{
array = (long long*) realloc(array, ++size);
array[size - 1] = x;
}
for(int i = size - 1; i >= 0; --i)
{
printf("%.4lf\n", sqrt(array[i]));
}
return EXIT_SUCCESS;
}
Объяснение кода листинга программы
В этом коде задача вычисления обратного корня нескольких чисел. Вот список действий, которые выполняются в коде:
- Включаются необходимые заголовочные файлы:
stdio.hдля работы с вводом/выводомstdlib.hдля работы с памятью и алгоритмами стандартной библиотекиmath.hдля работы с математическими функциями, включая функцию квадратного корня
- Создается точка входа в программу:
main(int argc, char** argv)
- Выделяется память под массив:
long long *arrayобъявляется как указатель наlong long(тип данных, представляющий целое число с значением, которое может быть как положительным, так и отрицательным)array = (long long*) malloc(size * sizeof(long long))выделяется память под массив размеромsize
- Считываются числа до тех пор, пока не будет достигнут конец файла:
while(scanf(%lld, &x) != EOF)считывается одно число типаlong longв переменнуюxarray = (long long*) realloc(array, ++size);массив увеличивается в размере на 1, и в новый свободный элемент записывается считанное числоarray[size - 1] = x;
- Вычисляется обратный корень каждого числа и выводится на экран:
for(int i = size - 1; i >= 0; --i)printf(%.4lf\n, sqrt(array[i]));sqrtэто функция из библиотекиmath.h, которая вычисляет квадратный кореньprintfэто функция из библиотекиstdio.h, которая выводит строку на экран
- Программа завершается успешно:
return EXIT_SUCCESS;Обратите внимание, что в этом коде не обрабатываются ошибки, такие как недостаточное количество памяти или некорректный ввод.