C 怎样做圆圈?

C 怎样做圆圈?,c,C,问题是,我没有得到一个正确的循环。例如,如果我输入cordinates:9,8和radius:8。。。我只得到很少的分数。。有人可以指导我如何获得一个完整的圆吗?这个代码有什么错误?我们不能使用任何内置函数。这是不正确的 ifsqrtpowi,2+powj,2==半径 这两个值完全相等是非常罕见的。相反,你应该做一个测试,看看这两个数字是否大致相等。比如像这样 如果fabssqrtpowi,2+powj,2-半径 这个代码有什么问题 给你: if (sqrt(pow(i, 2) + pow(j,

问题是,我没有得到一个正确的循环。例如,如果我输入cordinates:9,8和radius:8。。。我只得到很少的分数。。有人可以指导我如何获得一个完整的圆吗?这个代码有什么错误?我们不能使用任何内置函数。

这是不正确的

ifsqrtpowi,2+powj,2==半径

这两个值完全相等是非常罕见的。相反,你应该做一个测试,看看这两个数字是否大致相等。比如像这样

如果fabssqrtpowi,2+powj,2-半径 这个代码有什么问题

给你:

if (sqrt(pow(i, 2) + pow(j, 2)) == radius)
您不应该使用==来比较浮点数,它将无法按预期工作。您应该检查它是否接近半径:

if (sqrt(pow(i, 2) + pow(j, 2)) >= radius * 0.95)
例如。

您应该使用


它很好,它只使用整数运算,所以它既快又准确。

即使是这样,也可能是最低效的绘制圆的方法,我建议你读一下wiki上的极坐标,然后再试一次。此外,考虑格式化你的代码并有一个合理的用户名。C不是C++。如果你不写C++,不要把它添加到你的标签列表中。绝对值是不需要的,x^ 2+y ^ 2永远不会大于r^ 2,它足以检查总和大于rε。@的H2CO3在OP的循环X^ 2 +y^ 2肯定是最大的比R^ 2在机会。哦,对了。感谢您指出: