gpt4 book ai didi

检查点是在圆内还是在圆外(仅使用结构体实现)

转载 作者:行者123 更新时间:2023-11-30 15:10:41 26 4
gpt4 key购买 nike

首先,我给出了一个仅使用结构来实现这一点的任务。

我需要检查一个点是否在圆内/圆外。

输入:点的坐标、圆心、半径。

输出:圆内/外的点。

好吧,我需要使用距离公式d = sqrt( (x_1-x_2)^2 + (y_1 - y_2)^2 ) 然后检查它是否更大/更小/等于到半径。

我知道逻辑,但我不知道结构的语法。你们能帮我吗?

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

typedef struct {
float x;
float y;
}Point;

typedef struct {
Point center;
float radius;
}Circle;

int main()
{
Point Coordinates;
Coordinates.x = 0; //Is this initialization necessary?
Coordinates.y = 0; //Is this initialization necessary?
Circle insideCircle;
float distance;
printf("Please enter the coordinates of your point: ");
scanf("%f %f", Coordinates.x, Coordinates.y); //after input, throws error.
printf("Please enter your center coordinate and your radius: ");
scanf("%f %f", insideCircle.radius, insideCircle.center.x, insideCircle.center.y);
printf("%f %f %f %f %f", Coordinates.x, Coordinates.y, insideCircle.radius, insideCircle.center.x, insideCircle.center.y);

//More code for checking if distance > or < or = to radius to be added.
getch();
}

最佳答案

对于scanf(),您需要将变量的地址作为参数传递给提供的转换说明符,例如

scanf("%f %f", &(Coordinates.x), &(Coordinates.y));
^ ^

以及其他用途。

也就是说,检查 scanf() 调用的返回值以确保成功至关重要。

关于检查点是在圆内还是在圆外(仅使用结构体实现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36034973/

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