用c语言编程动态爱心,如何用C语言编程一个移动的爱心

1,如何用C语言编程一个移动的爱心//因为命令行不认识? , 所以运行起来?会变成?,但原理相同 。#include <windows.h>void main(void){printf("?\n");Sleep(1000); // 延时一秒system("cls");//清屏printf(" ?\n");Sleep(1000);//延时一秒system("cls");//清屏printf("?\n"); Sleep(1000);//延时一秒system("cls");//清屏printf("?\n");getch();}
2 , 怎样用C语言编写心形心形应该不容易用数学函数表示,所以用楼上的方法更方便,不过这是在DOS字符下,如果在图形模式,或窗口程序中就可以输出很光滑的心了,不知楼主要哪种先自己在纸上画出你要的心形再按一楼的方法耐心的用printf()一行一行的编吧^_^printf(" ");printf(" ");printf("*"); .. 你算算要几个空格和*符` 一行行计好比较简单`写算法的话太复杂了`---------------------------------------------------------楼主是指: 整个心型用线连起来的?`这种要用算法把点充分排布才可以,C语言`大概上百行代码才能完成..int a=detect,b;float r,r=9;float n=10*3.14/180,x,y;int i;initgraph(&a,&b,"");circle(200,300,r);for(i=0;i<36;i++)y=300+r*sin(i*n);r=sqrt((x0-x)^2+(y0-y)^2);/*x0,y0为r圆上的一定点*/circle(x0,y0,r);}closegraph();可以自己设计一个循环.【用c语言编程动态爱心,如何用C语言编程一个移动的爱心】
3,如何用C语言循环做一个爱心要能动的#include<stdio.h>#include<string.h>int get_left_or_right_setp() static int current = 0; static int right = 1; if (1 == right) current++; } else current--; } if (10 == current) right = 0; } else if (0 == current) right = 1; } return current;}void kongge(int step_cnt) int i = 0; for (i = 0; i < step_cnt; i++) printf(" "); }}void clear_screen() //linux选这个 system("clear"); //win选这个 //system("cls");}void printf_love() int step_cnt = get_left_or_right_setp(); kongge(step_cnt); printf(" ** ** \n"); kongge(step_cnt); printf(" * * * * \n"); kongge(step_cnt); printf(" * * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * * \n"); kongge(step_cnt); printf(" * \n");}int main(void) while (1) clear_screen(); printf_love(); sleep(1); } return 0;}伪动态 靠清屏实现动态
4,怎样用C语言编写个爱心图象创建一个心形图案需要的最长字符串,充分利用printf函数输出字符串的丰富控制功能,按心形图案每行所需长度和位置,对所创建的字符串进行截断并在所需位置上输出 , 最后在屏幕上形成由字符组成的心形图案 。//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"int main(void) char a[]="I love you I love you I love you I l"; printf("\n\n\n"); printf("%*.*s\n",58,21,"_*=_ _=*_"); printf("%*.*s\n",61,25,"I love yo u I love!"); printf("%*.*s\n",63,29,"I love you I l ove you I love"); printf("%*.*s\n",65,33,a);//在屏幕第65个字符处开始输出字符串a的前33个字符,其他各句意义相同 printf("%*.*s\n",66,35,a); printf("%*.*s\n",66,35,a); printf("%*.*s\n",65,33,a); printf("%*.*s\n",64,31,a); printf("%*.*s\n",63,29,a); printf("%*.*s\n",61,25,a); printf("%*.*s\n",59,21,a); printf("%*.*s\n",57,17,a); printf("%*.*s\n",55,13,a); printf("%*.*s\n",53,9,a); printf("%*.*s\n",51,5,a); printf("%*.*s\n",50,3,a); printf("%*.*s\n",49,1,a); return 0;}双层循环就可以了不过最简单的楼上的兄弟已经说了倒心:#include<stdio.h>#include<math.h>void main()int a,b,c; for(a=1;a<=6;a++)printf(" ");for(c=1;c<=2*a-1;c++)printf("\3");else printf(" ");}printf("\n"); }}双心:#include<stdio.h>#include<math.h>void main()int a,b,c; for(a=1;a<=6;a++)for(b=1;b<=6-a;b++)printf(" ");for(c=1;c<=2*a-1;c++)if(a<5&&(c==1||c==2*a-1)||(a==5&&(c==2||c==5||c==8))||a==6&&(c==4||c==5||c==7||c==8))printf("\3");else printf(" ");}printf("\n");} for(a=1;a<=6;a++)for(b=1;b<=a;b++)printf(" ");for(c=1;c<=11-2*a;c++)if(a>1&&(c==1||c==11-2*a)||a==1&&(c==2||c==5||c==8))printf("\3");else printf(" ");} printf("\n"); }}正心:#include<stdio.h>#include<math.h>void main()int a,b,c; printf("\3\3 \3\3\n"); for(a=1;a<=6;a++)for(b=1;b<=a;b++)printf(" ");for(c=1;c<=11-2*a;c++)if(a>1&&(c==1||c==11-2*a)||a==1&&(c==2||c==5||c==8))printf("\3");else printf(" ");} printf("\n"); }}# include # include #include # define u 0.06 # define v 0.025 # define m 1.1 # define n 1.2 int main(void) { float x, y; float m, n; char a[6600]; for ( y=2; y>=-2; y-=u ) { for ( x=-1.2; x<=1.2; x+=v) { if ( ( ( (x*x + y*y - 1)*(x*x + y*y - 1)*(x*x + y*y - 1) - x*x*y*y*y ) <= 0 ) ) strcat(a,"*"); else strcat(a," "); } strcat(a,"\n"); } strcat(a,"\0"); printf("%s\n",a); getchar(); return 0; }

    推荐阅读