用C语言编写心形的方法:
成都创新互联是一家专注于网站设计制作、网站设计与策划设计,山阴网站建设哪家好?成都创新互联做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:山阴等地区。山阴做网站价格咨询:18982081108
#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;
}
扩展资料
C程序是由一组变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。我们可以把函数看成一个“黑盒子”,你只要将数据送进去就能得到结果,而函数内部究竟是如何工作的,外部程序是不知道的。
外部程序所知道的仅限于输入给函数什么以及函数输出什么。函数提供了编制程序的手段,使之容易读、写、理解、排除错误、修改和维护。
参考资料:百度百科--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;
}
我这个就是在VC++6.0下写的,你应该能打出来(几年前写的)——
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(int argc,char *argv[]){
char a[]="I love you I love you I love you I l",m[4],i;
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;
}
运行结果:
#include stdio.h
int main()
{
int i, j, k, l, m;
char c = '*'; //用*号打印爱心
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;
}
个人认为还行,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;
}
原始的心形线的极坐标方程为: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)在心形外,显示空白,或者不显示。