Вычислить обратный корень нескольких чисел - 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;
}

Объяснение кода листинга программы

В этом коде задача вычисления обратного корня нескольких чисел. Вот список действий, которые выполняются в коде:

  1. Включаются необходимые заголовочные файлы:
    • stdio.h для работы с вводом/выводом
    • stdlib.h для работы с памятью и алгоритмами стандартной библиотеки
    • math.h для работы с математическими функциями, включая функцию квадратного корня
  2. Создается точка входа в программу:
    • main(int argc, char** argv)
  3. Выделяется память под массив:
    • long long *array объявляется как указатель на long long (тип данных, представляющий целое число с значением, которое может быть как положительным, так и отрицательным)
    • array = (long long*) malloc(size * sizeof(long long)) выделяется память под массив размером size
  4. Считываются числа до тех пор, пока не будет достигнут конец файла:
    • while(scanf(%lld, &x) != EOF) считывается одно число типа long long в переменную x
    • array = (long long*) realloc(array, ++size); массив увеличивается в размере на 1, и в новый свободный элемент записывается считанное число
    • array[size - 1] = x;
  5. Вычисляется обратный корень каждого числа и выводится на экран:
    • for(int i = size - 1; i >= 0; --i)
    • printf(%.4lf\n, sqrt(array[i]));
      • sqrt это функция из библиотеки math.h, которая вычисляет квадратный корень
      • printf это функция из библиотеки stdio.h, которая выводит строку на экран
  6. Программа завершается успешно:
    • return EXIT_SUCCESS; Обратите внимание, что в этом коде не обрабатываются ошибки, такие как недостаточное количество памяти или некорректный ввод.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы