繁体   English   中英

用 '*' C++ 画一个圆圈

[英]Making a circle with '*' 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;
}

圆圈看起来像柠檬,在不同的地方有一些奇怪的空间output:

          ***                                                                                                                                
      **      **                                                                                                                             
    *              *                                                                                                                         
  *                  *                                                                                                                       
  *                  *                                                                                                                       
*                      *                                                                                                                     
*                      *                                                                                                                     
*                      *                                                                                                                     
  *                  *                                                                                                                       
  *                  *                                                                                                                       
    *              *                                                                                                                         
      **      **                                                                                                                             
          ***              
//               ^ 
//               Wierd spacing
//               Oval-ish
std::cout << "*";
 std::cout << " ";

您要打印一个星号,但要打印两个空格。 这些语句需要打印相同数量的字符。 使用正确的字体,两个星号"**"看起来很不错:

调整后的图纸

与星号空格"* "一样:

调整后的图纸

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM