C 如何使用void函数从用户处获取点(x和y坐标)?
我有一个任务,你需要从用户那里获得两个点(每个点有一个x和一个y坐标),使用void函数。。。我对编码相当陌生,所以我不知道该怎么做。我可以用一个空函数从一个点得到坐标,但我不知道如何用一个函数得到两个点 获得一分的代码: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("
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;
}