-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