一起用C语言画个爱心吧!

点击蓝字

picture.image

关注我们

FOCUS ON US

“与君初相识,犹如故人归。天涯明月新,朝暮最相思”

picture.image

系列文章

picture.image

写在前面

如何用C语言画一个爱心呢?本期小编将带着大家一起探索奇妙的C语言,喜欢本篇内容的小伙伴可以给小编点个赞嘛!

picture.image

C语言是什么

picture.image

C语言是一种通用的高级程序设计语言,是由美国贝尔实验室的Dennis Ritchie在20世纪70年代早期开发的。C语言不仅是一种流行的计算机编程语言,还是许多其他编程语言的基础。它的设计目标是提供一种简洁、高效、可移植性强的语言,以便可以方便地编写系统软件、应用软件及其他嵌入式软件。

C语言有许多优点。它的语法简洁、清晰,易于学习和理解,可以通过它来实现复杂的算法和数据结构。C语言的可移植性非常高,可以在不同的操作系统和硬件上编写程序,这也是它成为学习编程的第一门语言的一个重要原因。此外,C语言之所以广泛使用,是因为它编写的程序效率高、使用灵活。

C语言也有一些缺点,比如它相对于其他编程语言来说比较底层,需要程序员自己管理内存,容易出现指针错误等问题。编写大型程序时,如果程序员不小心,很容易造成代码混乱、难以维护的问题。但是,这些缺点都可以通过编写良好的代码、使用工具进行调试和优化来解决。

对于初学者来说,C语言是一门很好的入门语言。通过学习C语言,可以帮助其掌握基本的编程概念和技能。除此之外,C语言还有广泛的应用领域,包括操作系统、嵌入式系统、游戏开发、网络编程和图形编程等。不管是从事计算机相关职业还是只为了兴趣爱好学习编程,学习C语言都是一个非常好的选择。

总之,C语言是一门重要的编程语言,不仅是计算机行业的重要组成部分,还是软件开发的基石。通过学习C语言,可以帮助我们更好地理解和掌握编程技术,提高我们的编程能力和职业竞争力。

picture.image

C语言爱心代码

运行结果

picture.image

完整程序


            
#include<stdio.h>
            
#include<Windows.h>
            

            
//写字
            
char love[20][43] = {
            
  "111111111111111111111111111111111111111111",
            
  "111111111111110000111111100001000111111111",
            
  "110000000000000000011111100011000111111111",
            
  "110000111001110001111111000110001111111111",
            
  "111100010000110000111111100011000000000011",
            
  "111100001000100011111110000100011111100011",
            
  "100000000000000000001110000100011111000111",
            
  "100000000000000000011100000000110001000111",
            
  "100011100011111000110000000000110001111111",
            
  "111011100011111100111111000111110001111111",
            
  "111000000000000000111111000110000000001111",
            
  "111111000111111111111111000110000000000111",
            
  "111110001111111111111111000100010001000111",
            
  "111000000000000001111111000000010001100011",
            
  "111000000011000011111111000000110001100001",
            
  "110001110000000111111111000001110001110111",
            
  "100011111000011111111111000111110001111111",
            
  "111110000000000000011111000111000001111111",
            
  "111000000111110000011111000111000011111111",
            
  "111111111111111111111111111111111111111111"
            
};
            

            
void gotoxy(int x, int y) {
            
  HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
            
  COORD pos = { x,y };
            
  SetConsoleCursorPosition(hout, pos);
            
}
            

            
void SetColor(int color) {
            
  if (color == 0)color = 0x04;
            
  HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
            
  SetConsoleTextAttribute(hCon, color);
            
}
            

            

            

            
int main() {
            
  system("color 0c");    //设计程序颜色
            
  printf("\n\t与君初相识,犹如故人归。天涯明月新,朝暮最相思\n");    //打印文字
            
  
            
  HWND consoleHandle = GetConsoleWindow();
            
  
            
  // 获取系统屏幕分辨率
            
  int screenWidth = GetSystemMetrics(SM_CXSCREEN);
            
  int screenHeight = GetSystemMetrics(SM_CYSCREEN);
            

            
  // 获取窗口大小
            
  RECT consoleRect;
            
  GetWindowRect(consoleHandle, &consoleRect);
            
  int consoleWidth = consoleRect.right - consoleRect.left;
            
  int consoleHeight = consoleRect.bottom - consoleRect.top;
            

            
  // 计算窗口应该出现的位置
            
  int x = (screenWidth - consoleWidth) / 2;
            
  int y = (screenHeight - consoleHeight) / 2;
            

            
  // 使用SetWindowPos函数设置新的窗口位置
            
  SetWindowPos(consoleHandle, 0, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
            

            

            
  float x1,y1,a;    //定义变量x,y,a
            
  int i, j;
            
  int x2, y2 = 3;
            

            
  for(y1=1.5f; y1>-1; y1-=0.1f) { //爱心函数
            
    for(x1=-1.5f; x1<1.5f; x1+=.05f) {
            
      a=x1*x1+y1*y1-1;
            
      putchar(a*a*a-x1*x1*y1*y1*y1<0.0f?'*':' ');
            
    }
            

            
    Sleep(150);     //停顿1.5秒钟
            
    putchar('\n');  //换行
            
  }
            

            
  for (i = 0; i < 19; i++, y2++) {
            
    x2 = 60;
            
    for (j = 0; j < 42; j++, x2++) {
            
      gotoxy(x2, y2);
            
      if (love[i][j] == '1') {
            
        putchar(' ');
            
      } else {
            
        SetColor(0x04);
            
        putchar('*');
            
      }
            
    }
            
  }
            

            
  putchar('\n');
            
  putchar('\n');
            
  putchar('\n');
            
  putchar('\n');
            
  putchar('\n');
            

            
  return 0;
            
}
        

程序分析

这个程序主要实现了一个用“*”符号组成的爱心图案和一些文字。下面跟着小编一起来看一下程序的具体实现吧:

NO. 1

爱心

程序中使用了一个双重循环来输出一个爱心图案。其中外层循环控制y坐标的变化,内层循环控制x坐标的变化。在每次循环中,先计算该点坐标的函数值,判断是否应该输出星号或者空格,然后用putchar函数逐个输出。

picture.image

NO. 2

“爱你”

程序中定义了一个二维字符数组来存储用“1”和“0”组成的爱心图案。然后使用双重循环来遍历数组,根据数组中各个位置的值来决定是否输出星号或者空格。需要注意的是,输出星号时需要先使用SetColor函数设置输出颜色。

picture.image

NO. 3

文字

程序中使用了printf函数输出一段文字,作为程序的开场白。

picture.image

NO. 4

窗口位置

程序中还使用了一些Windows API函数来调整窗口的位置。首先使用GetSystemMetrics函数获取系统屏幕的分辨率,然后使用GetWindowRect函数获取当前窗口的大小。根据这些参数计算出新的窗口位置,并使用SetWindowPos函数将窗口移动到新的位置。这样就可以让窗口居中显示。

picture.image

总的来说,这个程序实现了一个比较简单的动态效果,结合爱心图案和文字输出,营造出一种浪漫的氛围。同时,窗口位置调整的功能也增加了程序的美观程度和用户体验。

picture.image

写在后面

我是一只有趣的兔子,感谢你的喜欢!

0
0
0
0
评论
未登录
暂无评论