gpt4 book ai didi

c - 寻找中点ADT

转载 作者:行者123 更新时间:2023-11-30 20:19:42 26 4
gpt4 key购买 nike

点表示 x-y 平面中的坐标。它由以下功能支持:

Point * make_point(double x, double y)
double x_of(Point *p)
double y_of(Point *p)
void print_point(Point *p)

函数Point * mid_point,接受两个点作为参数并返回一个点,该点是这两个输入坐标的中点。

尝试在 mid_point(make_point(1.0, 1.0), make_point(3.0, 3.0)) 的在线模拟器上运行时显示错误

Point * mid_point(Point *x, Point *y) {

int mid = make_point((x_of(x)+x_of(x))/2,(y_of(y)+y_of(y))/2);

print_point(mid);

}

最佳答案

该行中多了一个括号:

return make_point( |(| (x_of (x) + x_of(x) ) / 2,  (y_of(y) + y_of(y) ) / 2);
//Extra bracket ^ ^open ^close ^open ^close

而且我很确定你的意思是:

return make_point((x_of (x) + x_of(|y|) ) / 2,  (y_of(|x|) + y_of(y) ) / 2);
^^^ ^^^

此外,我会从 make_point(double x, double y) 返回 Point 副本,而不是 Point* 指针,否则您必须返回静态变量或全局变量。

我认为这更简单:

#include <stdio.h>

typedef struct Point
{
double x, y;

}Point;

Point getMidPointOf(Point p1, Point p2)
{
Point newP = { (p1.x + p2.x) / 2.0, (p1.y + p2.y) / 2.0 };
return newP;
}

int main()
{
Point p1 = { 5.0, 15.0 };
Point p2 = { 15.0, 30.0 };
Point p3 = getMidPointOf(p1, p2);
printf("Point value = (%f, %f)", p3.x, p3.y);

return 0;
}

关于c - 寻找中点ADT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49332500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com