最简单的就是你用printf来实现
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、虚拟空间、营销软件、网站建设、凤泉网站维护、网站推广。
或者你要用函数来画心就很麻烦了
比如
#includestdio.h
void main()
{
printf("* *");
printf("* *");
printf("* *");
printf("* *");
printf("* *");
printf("* *");
}
就这种样子,自己布局吧,如果想用画图函数,要么在tc环境下,要么在vc下获取控制台句柄,调用api,然后写一个画心形的函数
给你一个我早写的作参考——
#include stdio.h
int main(int argc,char *argv[]){
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);
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;
}
原始的心形线的极坐标方程为:r=a(1-cosθ),有多种变化的情形,如:
看起来心形效果更好的一种方式用直角坐标表示是:
程序的截图看不清具体细节,估计是按照这个公式做的计算:
对给定的一组(x,y)做循环,按如上公式计算:
a = x*x + y*y -1;
f = a*a*a - x*x*y*y*y;
如果f0,代表(x,y)在心形内,显示一个标记;
如果f0,代表(x,y)在心形外,显示空白,或者不显示。
个人认为还行,7以上效果较好,不知道你要空心的还是实心的,都附上吧(百度知道好像把两个空格的位置上传后变成了一个空格,你自己要改一下,输出位置为一个空格的全部改成两个,其他的不用改):
实心的:
#includestdio.h
int n;
void draw(int n)
{
int i,j;
for (i=1-(n1);i=n;i++)
if (i=0)
{
for (j=0;ji;j++) printf(" ");
for (j=1;j=2*(n-i)+1;j++) printf(" *");
printf("\n");
}
else
{
for (j=i;j0;j++) printf(" ");
for (j=1;j=n+2*i+1;j++) printf(" *");
for (j=1;j=-1-2*i;j++) printf(" ");
for (j=1;j=n+2*i+1;j++) printf(" *");
printf("\n");
}
}
int main()
{
printf("Please input the size (n=4):");
scanf("%d",n);
draw(n);
return 0;
}
空心的:
#includestdio.h
int n;
void draw(int n)
{
int i,j;
for (i=1-(n1);i=n;i++)
if (i0)
{
for (j=0;ji;j++) printf(" ");
for (j=1;j=2*(n-i)+1;j++)
if (j==1||j==2*(n-i)+1) printf(" *");
else printf(" ");
printf("\n");
}
else
if (i==0)
{
printf(" *");
for (j=1;jn;j++) printf(" ");
printf(" *");
for (j=1;jn;j++) printf(" ");
printf(" *\n");
}
else
{
for (j=i;j0;j++) printf(" ");
for (j=1;j=n+2*i+1;j++)
if (i==1-(n1)) printf(" *");
else if (j==1||j==n+2*i+1) printf(" *");
else printf(" ");
for (j=1;j=-1-2*i;j++) printf(" ");
for (j=1;j=n+2*i+1;j++)
if (i==1-(n1)) printf(" *");
else if (j==1||j==n+2*i+1) printf(" *");
else printf(" ");
printf("\n");
}
}
int main()
{
printf("Please input the size (n=4):");
scanf("%d",n);
draw(n);
return 0;
}
#include stdio.h
int main(void)
{
float a,x,y;
for(y=1.5f; y-1.5f; y-=0.1f)
{
for(x=-1.5f; x1.5f; x+=0.05f)
{
a = x*x+y*y-1;
char ch = a*a*a-x*x*y*y*y=0.0f?'*':' ';
putchar(ch);
}
printf("\n");
}
return 0;
}
扩展资料:
书写规则
1、一个说明或一个语句占一行。
2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
参考资料:
百度百科-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;
}