Использование структуры для определения точки на плоскости - C - PullRequest
0 голосов
/ 15 декабря 2018

ВЫПУСК: Попытка определить точку в месте x и y, а затем представить точку в месте в виде структуры, имеющей два поля.

Таким образом, в зависимости отдля функции, которая принимает структуру, она вернет 1, 2, 3 или 4. (Это 4 квадранта)

Если x и y положительны, квадрант 1, если x отрицателен и yположительный, 2 Если x отрицательный, а y отрицательный, квадрант 3, а если x положительный, а y отрицательный, квадрант 4.

Большая часть моей проблемы не полностью понимает вопрос, принять ли я2 значения для х и у с использованием структуры и возвращают число?

Кроме того, как мне взаимодействовать с моей структурой?Надеюсь, я предоставил достаточно информации, это почти все, что у меня есть.

КОД:

#include <stdio.h>
#include <stdlib.h>
typedef struct coord
{
    int x;
    int y;

}POINT;


int main(){
int the_point;

scanf("%d", &the_point);
POINT * coord = malloc(50 * sizeof(POINT));

if (the_point)



    return 0;
}

Ответы [ 3 ]

0 голосов
/ 15 декабря 2018

Прежде всего, как вы читаете в точку.Похоже, вы сканируете в the_point.Эта переменная является только int, то есть, если вы не планируете ее анализировать или иным образом манипулировать ею, вы должны решить, является ли это x-значением или y-значением в задаче.Было бы лучше, чтобы пользователь явно указывал координаты точки.Например:

printf("Enter the x-coord of the input: ");
scanf("%d", &the_point);
///
///assign the_point to the x-coord
///

// do the same thing for y-coord

Вы будете использовать операторы стрелок для доступа к полям в структуре, например:

myStruct->field1 = some_var

Вы можете использовать этот же синтаксис для запуска ваших условных проверокотдельные поля.

0 голосов
/ 15 декабря 2018

Если вы не понимаете вопрос, я настоятельно рекомендую уточнить вопрос с вашим профессором / начальником / клиентом.Пишите, разговаривайте, звоните кому угодно.Проверьте с коллегами и другими студентами.Попытка ответить на вопрос, который вы не понимаете, не годится.

Структуры - это просто «контейнеры», которые могут содержать различные типы данных в c.Помимо хранения данных, они на самом деле больше ничего не делают.

Вот несколько примеров взаимодействия со структурой и передачи ее функции https://fresh2refresh.com/c-programming/c-passing-struct-to-function/

Не используйте последний вариант(используйте глобальную структуру), если у вас нет конкретной причины, по которой вы знаете, что ваша структура должна быть глобальной.

0 голосов
/ 15 декабря 2018

Это то, что вы ищете:

if (the_point[i].x < 0) {
    if (the_point[i].y < 0) {
        // quadrant 3
    }
    else {
        // quadrant 2
    }
}
else {
    if (the_point[i].y < 0) {
        // quadrant 4
    }
    else {
        // quadrant 1
    }
}

И строка ввода будет:

for (int i = 0; i < 50; ++i) {
    scanf("%d %d", &the_point[i].x, &the_point[i].y);
}

Кроме того, точка_ должна была быть объявлена ​​как:

POINT the_point[50];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...