Определить принадлежность точки к координатной четверти - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть код:
#include <stdio.h>
 
void main()
{
    int s[4][3];
    int j,i,n,x,y,R,p,max,maxi; 
    scanf("%d",&n);
    printf("%d",n);
    for(i=1;i<=4;i++)
        for(j=1;j<=3;j++)
            s[i][j]=0;
 
    for(i=1;i<=n;i++)
    {
        j=0;        
        scanf("%d %d",&x,&y);
        if(x>0 && y>0)
            j=1;    
        if(x<0 && y>0)
            j=2;
        if(x<0 && y<0)
            j=3;
        if(x>0 && y<0)
            j=4;
        s[j][1]++;
        p=s[j][2]*s[j][2]+s[j][3]*s[j][3];
        if(p>x*x+y*y || p==0)
        {
            s[j][2]=x;
            s[j][3]=y;
        }   
    }
    max=s[1][1];
    for(i=2;i<=4;i++)
    {
        if(max<s[i][1]){
            max=s[i][1];
            maxi=i;}
    }
    if(s[maxi][2]*s[maxi][2]>s[maxi][3]*s[maxi][3])
        R=s[maxi][3];
    else
        R=s[maxi][2];
    printf("K = %d \n M = %d \n A = (%d, %d) \n R = %d",maxi,s[maxi][1],s[maxi][2],s[maxi][3],R);
}
При выполнении программа не хочет даже выполнять 8 строку, скажите пожалуйста, почему так? Если кому вдруг надо вот текст задачи:
Дан список точек плоскости с целочисленными координатами. Необходимо определить: 1) номер координатной четверти K, в которой находится больше всего точек; 2) точку A в этой четверти, наименее удалённую от осей координат; 3) расстояние R от этой точки до ближайшей оси. Если в нескольких четвертях расположено одинаковое количество точек, следует выбрать ту четверть, в которой величина R меньше. При равенстве и количества точек, и величины R необходимо выбрать четверть с меньшим номером K. Если в выбранной четверти несколько точек находятся на одинаковом минимальном расстоянии от осей координат, нужно выбрать первую по списку. Точки, хотя бы одна из координат которых равна нулю, считаются не принадлежащими ни одной четверти и не рассматриваются. Напишите эффективную, в том числе по памяти, программу, которая будет решать эту задачу. Перед текстом программы кратко опишите алгоритм решения задачи и укажите используемый язык программирования и его версию. Описание входных данных В первой строке вводится одно целое положительное число – количество точек N. Каждая из следующих N строк содержит координаты очередной точки – два целых числа (первое – координата x, второе – координата y). Описание выходных данных Программа должна вывести номер выбранной четверти K, количество точек в ней M, координаты выбранной точки A и минимальное расстояние R по образцу, приведённому ниже в примере. Пример входных данных: 7 −3 4 1 2 1 1 0 4 −2 −3 −6 8 −12 1 Пример выходных данных для приведённого выше примера входных данных: K=2 M=3 A = (−12, 1) R=1
Помогите пожалуйста, ничего не пойму, почему программа даже printf() не выполняет?

Решение задачи: «Определить принадлежность точки к координатной четверти»

textual
Листинг программы
for(i=1;i<=4;i++)

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

  1. Переменная i инициализируется значением 1.
  2. Условие цикла for выполняется, так как i меньше или равно 4.
  3. Значение переменной i увеличивается на 1.
  4. Цикл for повторяется с начала.
  5. Значение переменной i снова увеличивается на 1.
  6. Цикл for повторяется с начала.
  7. Значение переменной i снова увеличивается на 1.
  8. Цикл for повторяется с начала.
  9. Значение переменной i снова увеличивается на 1.
  10. Цикл for повторяется с начала.
  11. Значение переменной i снова увеличивается на 1.
  12. Цикл for повторяется с начала.
  13. Значение переменной i снова увеличивается на 1.
  14. Цикл for повторяется с начала.
  15. Значение переменной i снова увеличивается на 1.
  16. Цикл for повторяется с начала.
  17. Значение переменной i снова увеличивается на 1.
  18. Цикл for повторяется с начала.
  19. Значение переменной i снова увеличивается на 1.
  20. Цикл for завершается, так как условие больше не выполняется.

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


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

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

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