java代码打印心形 java打印心形图案

java中怎样打印心形

package com.zeph.j2se.alg;

在沧源等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、网站制作 网站设计制作按需设计网站,公司网站建设,企业网站建设,品牌网站建设,营销型网站,外贸网站制作,沧源网站建设费用合理。

public class Heart {

int HighLevel(int wide) {

int i = 0, j = 0, k = 0, t = 0, m = 0, n = 0, count = 1;// i控制循环内高度,j控制每行前面空格,k控制输出的*数

// t控制高层星号中间空格,m记录高层最底行的星数,以下逐行增4

// n记录顶行空个数,以下逐行减4;count记录高层高度,与high无关

m = (wide - 4) / 2;

do {

count++;

m -= 4;

} while (m 4);

if ((wide - 4) % 2 == 0)// 区别对待奇偶宽度,奇数中间最小空1个,偶数最小空两个

{

n = 2 + 4 * (count - 1);

m--;

} else

n = 1 + 4 * (count - 1);

for (i = 0; i count; i++) {

for (j = (count - i) * 2; j 0; j--)

System.out.print(" ");

for (k = 0; k m; k++)

System.out.print("*");

for (t = 0; t n; t++)

System.out.print(" ");

for (k = 0; k m; k++)

System.out.print("*");

m += 4;

n -= 4;

System.out.print("\n");

}

return 0;

}

int LowLevel(int wide) {

int i = 0, j = 0, k = 0;// i控制输出行,j控制输出每行前的空格,k控制输出*

int high = 0, tmp = wide;

do// 计算所需高度

{

high++;

tmp -= 4;

} while (tmp 4);

high += 1;

for (i = 0; i high; i++) {

for (j = 0; j 2 * i; j++)

System.out.print(" ");

for (k = wide - 4 * i; k 0; k--)

System.out.print("*");

System.out.print("\n");

}

return 0;

}

public static void main(String[] args) {

int wide = 30;

Heart heart = new Heart();

heart.HighLevel(wide);

heart.LowLevel(wide);

}

}

用java或者c程序输出如下图的这种简单心形,谁能给我讲讲思路。加上程序示例更好

用方程的话肯定输出不会和你的图完全一致

心形线方程如图

用上面行第二个比较简单,程序如下

#include stdio.h

bool draw(float x, float y)

{

float a = x * x + y * y - 1.0;

float b = x * x * y * y * y;

return a * a * a - b = 0;

}

int main(int argc, char* argv[])

{

for (float y = 1.5; y = -1.5; y -= 0.1)

{

for (float x = -1.2; x = 1.2; x += 0.05)

{

if (draw(x, y))

{

bool left = draw(x - 0.05, y);

bool right = draw(x + 0.05, y);

bool up = draw(x, y + 0.1);

bool down = draw(x, y - 0.1);

if (left  right  up  down)

printf(" ");

else

printf("*");

}

else

printf(" ");

}

printf("\n");

}

return 0;

}

draw函数是判断(x,y)坐标是否在心形范围内

主函数循环,y取值±1.5之间,步长0.1,x取值±1.2之间,步长0.05

如果(x,y)坐标在心形范围外打印空格

如果(x,y)坐标在心形范围内,由于这个心是空心的,要继续判断是不是心形边缘,判断周围4个点坐标,如果都在范围内,表示(x,y)坐标不会是边缘,打印空格,否则是边缘,打印星号

最终结果如图

如何用java在页面上用循环打印一个爱心形状

import java.util.Scanner;

public class test{

static void draw(int n)

{

int i,j;

for (i=1-(n1);i=n;i++)

if (i0)

{

for (j=0;ji;j++) System.out.print(" ");

for (j=1;j=2*(n-i)+1;j++)

if (j==1||j==2*(n-i)+1) System.out.print(" *");

else System.out.print(" ");

System.out.println("\n");

}

else

if (i==0)

{

System.out.print(" *");

for (j=1;jn;j++) System.out.print(" ");

System.out.print(" *");

for (j=1;jn;j++) System.out.print(" ");

System.out.print(" *\n");

}

else

{

for (j=i;j0;j++) System.out.print(" ");

for (j=1;j=n+2*i+1;j++)

if (i==1-(n1)) System.out.print(" *");

else if (j==1||j==n+2*i+1) System.out.print(" *");

else System.out.print(" ");

for (j=1;j=-1-2*i;j++) System.out.print(" ");

for (j=1;j=n+2*i+1;j++)

if (i==1-(n1)) System.out.print(" *");

else if (j==1||j==n+2*i+1) System.out.print(" *");

else System.out.print(" ");

System.out.print("\n");

}

}

public static void main(String[] args) {

System.out.println("Please input the size (n=4):");

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

draw(n);

}

}先说明这个不是我写的 是看了有人用C语言写的 就顺便改成了java 结果有点像爱心 还凑合着 你看看怎么样吧 哈


网页题目:java代码打印心形 java打印心形图案
网址分享:http://myzitong.com/article/dopeeic.html