-1
我在互联网上偶然发现了一些博客上的代码。这是一个非常有趣的程序,但我一直在试图弄清楚程序是如何实际运行一段时间的,而且自那时起我一直坚持下去。我只是不明白程序如何打印对称。心脏的一半是印刷的,另一半是通过镜像来复制的?如果有人能帮我弄清楚逻辑,我会很感激。提前致谢。这个“打印心脏”程序如何在C中工作?
//Include Headers.
#include <stdio.h>
#include <math.h>
int main()
{
int x, y, size=20;
for (x=0; x<size; x++)
{
for (y=0; y<=4*size; y++)
{
double dist1 = sqrt(pow(x-size,2) + pow(y-size,2));
double dist2 = sqrt(pow(x-size,2) + pow(y-3*size,2));
if (dist1 < size + 0.5 || dist2 < size + 0.5)
printf("%c",97);
else
printf(" ");
}
printf("\n");
}
for (x = 1; x <= 2*size; x++)
{
for (y=0; y<x; y++)
printf(" ");
for (y=0; y<4*size + 1 - 2*x; y++)
printf("%c",86);
printf("\n");
}
return 0;
}
对你的问题的一个相当简单的回答就在你的代码中。打印星号,而不是打印星号“dist1”和“dist2”,每行一对。 – WhozCraig
任何图片说明都会有帮助。 – Legolas
对于如此深切感兴趣的人来说,你看起来没有看过代码或者通过调试器运行它。关于对称性的问题的答案在于'printf(“\ n”);'在x循环中...... – kfsone