天天写代码,写程序的码农,是否真的不浪漫,哈哈。是真的!!!!
今天忙里偷闲,写一段代码,输出一个心形。
【要求】
1.使用C语言实现。
2.不能存使用printf实现,哈哈。
3.必须使用for循环。
【参考】
https://jingyan.baidu.com/article/3c48dd345ada56e10be358f1.html
【代码】
#include <stdio.h>
#include <math.h>
#define DEFINE_R (20U) /* 可以定制大小哦 */
#define SQUARE(a) (a * a)
int main(int argc,char* argv[])
{
int r = DEFINE_R;
double x,y;
for(y = r;y >= 0;y = y - 2){ /* 上面两个半圆的循环。 */
/* 为什么Y轴要减2,因为字符的换行后有行间距,如果不减2,这个心就很长,不够圆润。 */
for(int i = 0;i < 2;i++){
/* 循环两次,画出两个半圆。 */
for(x = r; fabs(x) <= r;x--){
if((SQUARE(x) + SQUARE(y)) > SQUARE(r)){
printf(" ");
}else{
printf("♥");
}
}
}
printf("\n");
}
for(y = 0;y <= 3*r;y = y + 2){ /* 下面部分,左边扇形。 */
/* 为什么Y轴要减2,因为字符的换行后有行间距,如果不减2,这个心就很长,不够圆润。 */
for(x = 3*r;fabs(x) >= r;x--){
if((SQUARE(x) + SQUARE(y)) > SQUARE(3 * r)){
printf(" ");
}else{
printf("♥");
}
}
for(x = 0 - r;fabs(x) <= 3 * r;x--){ /* 下面部分,右边扇形。 */
if((SQUARE(x) + SQUARE(y)) > SQUARE(3 * r)){
printf(" ");
}else{
printf("♥");
}
}
printf("\n");
}
return 0;
}
【编译命令】
gcc heart.c -lm
【输出结果】
是不是有心动的感觉啊!!要点赞!!