Вычислить обратный корень нескольких чисел - 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
в переменнуюx
array = (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;
Обратите внимание, что в этом коде не обрабатываются ошибки, такие как недостаточное количество памяти или некорректный ввод.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д