用'*'C++做一个圆
我正在制作一个圆圈并且代码工作正常,但问题是即使它正在工作,圆圈也不完美,或者尽可能接近。
我的代码:
#include <iostream>
#include <math.h>
int main()
{
int radius = 6;
int i,j;
for (i=0; i<=2*radius; i++)
{
for (j=0; j<=2*radius; j++)
{
double distance = sqrt((double)(i-radius)*(i-radius) + (j-radius)*(j-radius));
if (distance>radius-0.65 && distance<radius+0.2)
{
std::cout << "*";
}
else
{
std::cout << " ";
}
}
std::cout << std::endl;
}
return 0;
}
圆圈看起来像一个柠檬,在不同的地方有一些奇怪的空间输出:
***
** **
* *
* *
* *
* *
* *
* *
* *
* *
* *
** **
***
// ^
// Wierd spacing
// Oval-ish
回答
std::cout << "*";std::cout << " ";
您正在打印一个星号但有两个空格。这些语句需要打印相同数量的字符。使用正确的字体,两个星号"**"看起来很不错:
星号空间也是如此"* ":