c 编程爱心,用C语言编一个程序使之用打印出一个爱心的图案

1,用C语言编一个程序使之用打印出一个爱心的图案个人认为还行,7以上效果较好,不知道你要空心的还是实心的,都附上吧(百度知道好像把两个空格的位置上传后变成了一个空格,你自己要改一下,输出位置为一个空格的全部改成两个,其他的不用改):实心的:#include<stdio.h> int n;void draw(int n){int i,j;for (i=1-(n>>1);i<=n;i++) if (i>=0) { for (j=0;j<i;j++) printf(" "); for (j=1;j<=2*(n-i)+1;j++) printf(" *"); printf("\n"); } else { for (j=i;j<0;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; } 空心的:#include<stdio.h> int n; void draw(int n){ int i,j;for (i=1-(n>>1);i<=n;i++) if (i>0) { for (j=0;j<i;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;j<n;j++) printf(" "); printf(" *"); for (j=1;j<n;j++) printf(" "); printf(" *\n"); } else { for (j=i;j<0;j++) printf(" "); for (j=1;j<=n+2*i+1;j++) if (i==1-(n>>1)) 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-(n>>1)) 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; }【c 编程爱心,用C语言编一个程序使之用打印出一个爱心的图案】
2,怎样用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; }

    推荐阅读