java 怎样写出一个菱形程序?空心和实心

*********************... * * *** * * ***** * * *** * * * * 展开
 我来答
小傻

推荐于2016-01-07 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

java打印菱形通过二维数组来打印,实例如下:

		int hangshu = 11;
int yiban = hangshu / 2 + 1;
int yibanduo = hangshu / 2;
System.out.println("空心菱形:");
for(int k = 1;k <= yiban;k++){
for(int i = 1;i <= (yiban - k);i++){
System.out.print(" ");
}
System.out.print("*");
for(int i = 1;i <= ( (k - 2) * 2 + 1);i++){
System.out.print(" ");
}
if(k != 1){
System.out.print("*");
}
System.out.println();
}
for(int k = yibanduo;k >=1;k--){
for(int i = 1;i <= (yiban - k);i++){
System.out.print(" ");
}
System.out.print("*");
for(int i = 1;i <= ( (k - 2) * 2 + 1);i++){
System.out.print(" ");
}
if(k != 1){
System.out.print("*");
}
System.out.println();
}


System.out.println("实心菱形:");
for(int i = 1;i <= hangshu;i++){
if(i <= hangshu/2 + 1){
for(int k = 1;k <= hangshu/2 + 1- i;k++){
System.out.print(" ");
}
for(int k = 1;k <= i;k++){
System.out.print("* ");
}
System.out.println();
}else{
for(int k =1;k <= (i -(hangshu/2 + 1));k++){
System.out.print(" ");
}
for(int k = 1;k <= (2 *(hangshu/2 + 1) - i);k++){
System.out.print("* ");
}
System.out.println();
}
}

结果如下:

苦苦无心
2012-11-19
知道答主
回答量:10
采纳率:0%
帮助的人:3.9万
展开全部
实心

import java.util.Scanner;
public class LingXing
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入菱形变长:");
int num = sc.nextInt();
for (int i=1;i<=num;i++)
{
for(int j=1;j<num-i+1;j++)
{
System.out.print(" ");
}
for(int k=1;k<2*i;k++)
{
System.out.print("*");
}System.out.println("");
}
for(int i=1;i<num;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print(" ");
}
for(int k=1;k<2*(num-i);k++)
{
System.out.print("*");
}
System.out.println("");
}
}
}

空心
import java.util.Scanner;
public class LingXKX
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入菱形变长:");
int num =sc.nextInt();
for (int i=1;i<=num;i++)
{
for(int j=1;j<num-i+1;j++)
{
System.out.print(" ");
}
int count =2*i-1;
for(int k=0;k<count;k++)
{
if(0==k||count-1==k)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println("");
}
for(int i=1;i<num;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print(" ");
}
int count = 2*(num-i)-1;
for(int k=0;k<count;k++)
{
if(k==0||k==count-1)
System.out.print("*");
else
System.out.print(" ");
}System.out.println("");
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
传说No1
推荐于2018-03-03 · TA获得超过101个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:110万
展开全部
像这一类的问题,我一般做一个二维数组
在将要打印的图形,电子表格中写出,再找行列的关系,数组中[i],[j]对应的加减,就能打出来你想要的图形,你试试
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
KwongYekSing
2012-03-30 · TA获得超过506个赞
知道小有建树答主
回答量:316
采纳率:0%
帮助的人:205万
展开全部
http://zhidao.baidu.com/question/323654175.html?oldq=1
这个问题我以前回答过, 请点击去看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式