Сколько среди заданных точек таких, которые принадлежат кругу радиусом 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);
}

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

В этом коде:

  1. Сначала объявляются переменные:
    • n - количество точек
    • i и j - индексы точек
    • r - радиус круга
    • a - массив для хранения координат точек
  2. С помощью функции scanf вводятся значения переменных n и r.
  3. Динамически выделяется память под массив a с помощью функции malloc.
  4. В цикле for с помощью функции scanf в массив a считываются координаты точек.
  5. Переменные i и j инициализируются, а переменная k обнуляется.
  6. В цикле while проверяется, есть ли точка с индексом i на заданном круге. Если да, то переменная k увеличивается на единицу.
  7. После выхода из цикла while выводится значение переменной k, которое и является ответом на задачу.

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


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

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

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