注册 登录
编程论坛 C语言论坛

c语言怎么用*输出心形

暴君Dentiny 发布于 2019-08-12 07:45, 5711 次点击
问题如题,希望用最简单的办法输出,求大佬写的上注释,详细点,谢谢了
8 回复
#2
吹水佬2019-08-12 08:47
心形线方程
#3
wufuzhang2019-08-12 09:03
回复 楼主 暴君Dentiny
程序代码:

#include <stdio.h>

int main() {

    // 绘制一个心形图案
    for (float y = 1.5f; y > -1.5f; y -= 0.1f) {
        for (float x = -1.5f; x < 1.5f; x += 0.05f) {
            float a = x * x + y * y - 1;
            putchar(a * a * a - x * x * y * y * y <= 0.0f ? '*' : ' ');
        }
        putchar('\n');
    }
   
    return 0;
}
#4
TysonKoothra2019-08-12 12:50
我仿照wufuzhang 的答案,也写了一个
程序代码:

#include <math.h>
#include <stdio.h>


int main(void) {
    for(double y = 1.0; y > -1.0; y -= 0.05) {
        for (double x = -1.0; x < 1.0; x += 0.02) {
            if(5*x*x - 6*fabs(x)*y + 5*y*y < 2) {
                putchar('*');
            } else {
                putchar(' ');
            }
        }
        putchar('\n');
    }
}
#5
暴君Dentiny2019-08-12 12:52
回复 3楼 wufuzhang
没明白float y = 1.5f,以及后面的,能解释一下吗
#6
暴君Dentiny2019-08-12 12:52
回复 4楼 TysonKoothra
没懂
#7
暴君Dentiny2019-08-12 12:53
回复 4楼 TysonKoothra
解释一下思路
#8
TysonKoothra2019-08-12 13:59
回复 7楼 暴君Dentiny
5*x*x - 6*abs(x)*y + 5*y*y = 2,这一个方程可以画出一个心形的曲线
只有本站会员才能查看附件,请 登录


当 5*x*x - 6*abs(x)*y + 5*y*y 小于 2时,所有的点在心形线的内部。
把心形线内部的点用 * 打印,外部的点用空格打印,就打印出了心形图案。
只有本站会员才能查看附件,请 登录
#9
暴君Dentiny2019-08-12 23:44
回复 8楼 TysonKoothra
数学不好好费劲啊
1