Сколько среди заданных точек таких, которые принадлежат кругу радиусом R с центром в начале координат? - C (СИ)
Формулировка задачи:
Даны натуральное число n,действительные числа r1,a1,...an(n>=2). Сколько среди точек (a1,an),(a2,an-1),...(an,a1) таких, которые принадлежат кругу радиуса r с центромв начале координат?
Решение задачи: «Сколько среди заданных точек таких, которые принадлежат кругу радиусом R с центром в начале координат?»
textual
Листинг программы
#include <stdio.h> int main( void ){ int n, i, j; float r; scanf("%d %f", &n, &r); float *a; a = (float *) malloc(n * sizeof(float)); for (i = 1; i <= n; i++) scanf("%f", &a[i]); i = 0; j = n + 1; int k = 0; while (i != (n / 2 + n % 2)){ i++; j--; if (a[i]*a[i] + a[j]*a[j] <= r*r) k++; } printf("%d", k); return(0); }
Объяснение кода листинга программы
В этом коде:
- Сначала объявляются переменные:
n
- количество точекi
иj
- индексы точекr
- радиус кругаa
- массив для хранения координат точек
- С помощью функции
scanf
вводятся значения переменныхn
иr
. - Динамически выделяется память под массив
a
с помощью функцииmalloc
. - В цикле
for
с помощью функцииscanf
в массивa
считываются координаты точек. - Переменные
i
иj
инициализируются, а переменнаяk
обнуляется. - В цикле
while
проверяется, есть ли точка с индексомi
на заданном круге. Если да, то переменнаяk
увеличивается на единицу. - После выхода из цикла
while
выводится значение переменнойk
, которое и является ответом на задачу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д