C 如何使用void函数从用户处获取点(x和y坐标)?

C 如何使用void函数从用户处获取点(x和y坐标)?,c,C,我有一个任务,你需要从用户那里获得两个点(每个点有一个x和一个y坐标),使用void函数。。。我对编码相当陌生,所以我不知道该怎么做。我可以用一个空函数从一个点得到坐标,但我不知道如何用一个函数得到两个点 获得一分的代码: void getPoint(double Ax, double Ay) { printf("Enter in your x coordinate: \n"); scanf("%lf",&Ax); printf("

我有一个任务,你需要从用户那里获得两个点(每个点有一个x和一个y坐标),使用void函数。。。我对编码相当陌生,所以我不知道该怎么做。我可以用一个空函数从一个点得到坐标,但我不知道如何用一个函数得到两个点

获得一分的代码:

    void getPoint(double Ax, double Ay) {
        printf("Enter in your x coordinate: \n");
        scanf("%lf",&Ax);
        printf("Enter in your y coordinate: \n");
        scanf("%lf",&Ay);
    }

void
函数不会返回任何内容,但可以修改内存。不要使用两个双参数调用
getPoint
函数,而是将其改为使用两个指针作为参数。指针将指向内存中函数可以修改的变量,其值将返回给调用者。这就是您正在使用的
scanf
功能的工作方式

getPoint
函数可以重写为

void getPoint(double *Ax, double *Ay) {
        printf("Enter in your x coordinate: \n");
        scanf("%lf",Ax);
        printf("Enter in your y coordinate: \n");
        scanf("%lf",Ay);
}
使用指向
double
的两个指针将参数从按值调用更改为按引用调用。 从main这样称呼它:

struct Point {
    double x, y;
};

int main(){
   struct Point p1 = {10,20};
   struct Point p2 = {200,400};
   {
       /* data */
   };

   getPoint(&p1.x, &p1.y);
   getPoint(&p2.x, &p2.y);
}

然后,可以通过将
double*
替换为指向
struct点的指针来进一步细化该点。请显示如何使用void函数获得一个点的代码。获取用户输入应该与函数的返回值无关。因此,我们需要代码来更好地理解您所指的内容。好的,我在代码中添加了一点,是否更好…?调用函数两次?或者在函数中再添加两个参数?
struct Point {
    double x, y;
};

void getTwoPoints(struct Point *p_point1, struct Point *p_point2) {
   printf("Enter in your x coordinate for first point: \n");
   scanf("%lf",&p_point1->x);
   printf("Enter in your y coordinate for first point: \n");
   scanf("%lf",&p_point1->y);

   printf("Enter in your x coordinate for second point: \n");
   scanf("%lf",&p_point2->x);
   printf("Enter in your y coordinate for second point: \n");
   scanf("%lf",&p_point2->y);
}

int main() {
    struct Point point1, point2;

    getTwoPoints(&point1, &point2);

    // Do whatever you want to do
    return 0;
}