c语言爱心代码详解_C语言程序源代码

c语言爱心代码详解_C语言程序源代码1、love图案的C语言爱心代码C语言爱心代码如下:#include<stdio.h>intmain(){inti,j,k,n=0,x=0,y=50;//爱心的头部没有规律,所以直接打印printf(“\n\n\n\n\n”);printf(“lovelovelovelove\n”);printf(“lovelovelove

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1、love图案的C语言爱心代码

C语言爱心代码如下:

#include <stdio.h>
 
int main()
 
{
    int i, j, k, n = 0, x = 0, y = 50;
 
    //爱心的头部没有规律,所以直接打印
    printf("\n\n\n\n\n");
    printf("         lovelove                   lovelove\n");
    printf("       lovelovelove               lovelovelove\n");
    printf("     lovelovelovelove           lovelovelovelove\n");
    printf("   lovelovelovelovelove       lovelovelovelovelove\n");
    printf("  lovelovelovelovelovelo     lovelovelovelovelovelo\n");
    printf(" lovelovelovelovelovelove   lovelovelovelovelovelov\n");
    for (i = 0; i < 2; i++)
    {
        printf("lovelovelovelovelovelovelovelovelovelovelovelovelove\n");
 
    }
 
    for(i=0;i<5;i++)    //爱心的中间部分的上部分
    {
        y = 50;
        y = y - i*2;
        n++;
        for (k = 0; k < n; k++)    //在每一行的起始位置先打印空格
        {
            printf(" ");
        }
            while(1)     //空格后面打印love,但是要注意love即使没打印完,也要换行
            {
                if (x < y)
                {
                    printf("l");
                    y--;
                }
                else
                    break;
                if (x < y)
                {
                    printf("o");
                    y--;
                }
                else
                    break; if (x < y)
                {
                    printf("v");
                    y--;
                }
                    else
                    break; if (x < y)
                {
                    printf("e");
                    y--;
                }
                    else
                    break;
            }
        printf("\n");
    }
 
 
    //最下面的部分,具体内容同上,没和上一部分放一起是因为从这行开始多两个空格
    for (i = 0,n=3; i < 10; i++)
    {
        y = 37;
        y = y - i * 4;
        n++;
        for (k = 0; k < n; k++)
        {
            printf("  ");
        }
        while (1)
        {
            if (x < y)
            {
                printf("l");
                y--;
            }
            else
                break;
            if (x < y)
            {
                printf("o");
                y--;
            }
            else
                break; if (x < y)
            {
                printf("v");
                y--;
            }
                else
                break; if (x < y)
            {
                printf("e");
                y--;
            }
                else
                break;
        }
        printf("\n");
    }
 
    printf("\n\n\n\n\n\n\n\n\n\n\n\n");
    return 0;
}

已把大量C语言源码整理为一个压缩包关注微 信 公 众 号:“C和C加加”  回复:“源码”  即可获取 

效果展示:

c语言爱心代码详解_C语言程序源代码

2、心形图案的C语言爱心代码

代码如下:

#include <stdio.h>
int main()
{
int  i, j, k, l, m;
char c=3; //ASCII码里面 3 就是一个字符小爱心
for (i=1; i<=5; i++)    printf("\n"); //开头空出5行
for (i=1; i<=3; i++) { //前3行中间有空隙分开来写
for (j=1; j<=32-2*i; j++)  printf(" "); //左边的空格,每下一行左边的空格比上一行少2个 //8*n-2*i
for (k=1; k<=4*i+1; k++)  printf("%c", c);//输出左半部分字符小爱心
for (l=1; l<=13-4*i; l++)  printf(" "); //中间的空格,每下一行的空格比上一行少4个
for (m=1; m<=4*i+1; m++)  printf("%c", c);//输出右半部分字符小爱心
printf("\n");  //每一行输出完毕换行
}
for (i=1; i<=3; i++) { //下3行中间没有空格
for (j=1; j<=24+1; j++)   printf(" "); //左边的空格 //8*(n-1)+1
for (k=1; k<=29; k++)   printf("%c", c);//输出字符小爱心
printf("\n");  //每一行输出完毕换行
}
for (i=7; i>=1; i--) { //下7行
for (j=1; j<=40-2*i; j++)  printf(" "); //左边的空格,每下一行左边的空格比上一行少2个//8*(n+1)-2*i
for (k=1; k<=4*i-1; k++)  printf("%c", c);//每下一行的字符小爱心比上一行少4个(这个循环是i--)
printf("\n");  //每一行输出完毕换行
}
for (i=1; i<=39; i++)    printf(" "); //最后一行左边的空格
printf("%c\n", c);  //最后一个字符小爱心
for (i=1; i<=5; i++)    printf("\n"); //最后空出5行
return 0;
}

效果展示:

c语言爱心代码详解_C语言程序源代码

3、复杂动态C语言爱心代码

代码如下:

#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <tchar.h>
 
float f(float x, float y, float z) {
float a = x * x + 9.0f / 4.0f * y * y + z * z - 1;
return a * a * a - x * x * z * z * z - 9.0f / 80.0f * y * y * z * z * z;
}
 
float h(float x, float z) {
  for (float y = 1.0f; y >= 0.0f; y -= 0.001f)
if (f(x, y, z) <= 0.0f)
return y;
return 0.0f;
}
 
int main() {
HANDLE o = GetStdHandle(STD_OUTPUT_HANDLE);
_TCHAR buffer[25][80] = { _T(' ') };
_TCHAR ramp[] = _T(".:-=+*#%@");
 
for (float t = 0.0f;; t += 0.1f) {
    int sy = 0;
    float s = sinf(t);
    float a = s * s * s * s * 0.2f;
    for (float z = 1.3f; z > -1.2f; z -= 0.1f) {
    _TCHAR* p = &buffer[sy++][0];
    float tz = z * (1.2f - a);
    for (float x = -1.5f; x < 1.5f; x += 0.05f) {
    float tx = x * (1.2f + a);
    float v = f(tx, 0.0f, tz);
    if (v <= 0.0f) {
    float y0 = h(tx, tz);
    float ny = 0.01f;
    float nx = h(tx + ny, tz) - y0;
    float nz = h(tx, tz + ny) - y0;
    float nd = 1.0f / sqrtf(nx * nx + ny * ny + nz * nz);
    float d = (nx + ny - nz) * nd * 0.5f + 0.5f;
    *p++ = ramp[(int)(d * 5.0f)];
}
else
    *p++ = ' ';
}
}
 
    for (sy = 0; sy < 25; sy++) {
    COORD coord = { 0, sy };
    SetConsoleCursorPosition(o, coord);
    WriteConsole(o, buffer[sy], 79, NULL, 0);
}
Sleep(33);
}
}

效果如下: 

c语言爱心代码详解_C语言程序源代码

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182584.html原文链接:https://javaforall.net

(2)
上一篇 2022年10月13日 上午6:36
下一篇 2022年10月13日 上午6:46


相关推荐

  • ClawdBox是什么?让OpenClaw部署安装从未如此简单!

    ClawdBox是什么?让OpenClaw部署安装从未如此简单!

    2026年3月12日
    2
  • TOF相机-非扫描三维成像

    TOF相机-非扫描三维成像飞行时间法(TOF)3D成像,是通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得到目标物距离。这种技术跟3D激光传感器原理基本类似,只不过3D激光传感器是逐点扫描,而TOF相机则是同时得到整幅图像的深度信息;TOF相机与普通机器视觉成像过程也有类似之处,都是由光源、光学部件、传感器、控制电路以及处理电路等几部

    2022年5月26日
    47
  • k8s(七)Pod调度[通俗易懂]

    k8s(七)Pod调度[通俗易懂]k8s概述定向调度亲和性调度污点和容忍Pod的调度概述在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足需求,因为很多情况下,我们想控制某些Pod到达某些节点上,那么应该怎么做?这就要求了解kubernetes对Pod的调度规则,kubernetes提供了四大类调度方式。自动调度:运行在哪个Node节点上完全由Scheduler经过一系列的算法计算得出。定向调度:NodeName、NodeS

    2022年8月11日
    7
  • VC的调试中,AssertValid和Dump函数的应用(转载)

    VC的调试中,AssertValid和Dump函数的应用(转载)VC的调试中,AssertValid和Dump函数的应用??楼主mei2004mei2004(aaa)2005-12-0209:47:24在VC/MFC/基础类提问rt.  在debug调试中,AssertValid和Dump 这两个函数怎么进行工作的?    或者说怎么合理利用这两个函数?    …问题点数:100、回复次数:3Top 1楼

    2022年7月14日
    17
  • Jave2-Java音频视频编码器

    Jave2-Java音频视频编码器文章目录Jave2-Java音频视频编码器Jave2是什么Installation and requirementsJave2 怎么玩支持的操作系统+要求支持 Maven/Gradle实战演练将arm文件转为mp3文件使用监听器监听转换进度-高级一点的用法问题收集Jave2 总结Jave2是什么JAVE2(Java音频视频编码器)库是ffmpeg项目上的Java包装器。 开发人员可以利用JAVE2将音频和视频文件从一种格式转码为另一种格式。 在示例中,您可以将AVI

    2022年2月28日
    63
  • 表格图片加载不出来,破图,加载失败怎么办_ie网页表格显示不出来

    表格图片加载不出来,破图,加载失败怎么办_ie网页表格显示不出来表格图片加载不出来,破图,加载失败el-upload组件将图片上传至服务器<templateslot-scope=”scope”slot=”wjmcForm”><el-upload:headers=”headers”:show-file-list=”false”…

    2025年8月6日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号