使用结构确定平面中的点-C

时间:2018-12-14 22:26:49

标签: c struct

问题: 尝试找出位置xy中的点,然后将其表示为具有两个字段的结构。

因此,根据接受该结构的函数,它将返回1、2、3或4。(这是4个象限)

如果x和y为正,则象限1, 如果x为负且y为正,则2 如果x为负且y为负,则象限3, 如果x为正且y为负,则象限4。

我的大部分问题不是完全理解问题,我是否使用结构为x和y取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 :(得分:1)

首先,您如何看待这一点。好像您扫描到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

您可以使用相同的语法在各个字段上运行条件检查。

答案 1 :(得分:1)

如果您不理解这个问题,我强烈建议您与您的教授/老板/客户澄清这个问题。电子邮件,通话,打电话给您需要的人。与同事和其他学生核对。试图回答一个您不理解的问题是不好的。

结构只是可以在c中保存各种类型数据的“容器”。除了保存数据,他们实际上并没有做其他事情。

以下是与结构进行交互并将其传递给函数的一些示例 https://fresh2refresh.com/c-programming/c-passing-struct-to-function/

除非您有特定的原因知道结构应该是全局的,否则不要做最后一个选择(使用全局结构)。

答案 2 :(得分:0)

是您要找的东西吗?

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);
}

此外,the_point必须声明为:

POINT the_point[50];