java 怎样写出一个菱形程序?空心和实心
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎样写出一个菱形程序?空心和实心相关的知识,希望对你有一定的参考价值。
* * *** * * ***** * * *** * * * *
java打印菱形通过二维数组来打印,实例如下:
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();
结果如下:
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("");
参考技术B 像这一类的问题,我一般做一个二维数组
在将要打印的图形,电子表格中写出,再找行列的关系,数组中[i],[j]对应的加减,就能打出来你想要的图形,你试试本回答被提问者和网友采纳 参考技术C http://zhidao.baidu.com/question/323654175.html?oldq=1
这个问题我以前回答过, 请点击去看
PHP练习--用for循环打印空心菱形
思路:1,写出代码打印实心的金字塔
2、修改代码,把金字塔抛空
3、修改代码,把金字塔倒转
4、修改倒转后的代码,把金字塔抛空
5、修改代码,把具体的数进行参数化
1、写出代码打印实心金字的金字塔:
<?php //$n=5; for($i=1;$i<=5;$i++){ //打印空格 for($j=1;$j<=5-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-1;$k++){ echo "*"; } echo "<br/>"; } ?>
2、
2、改善代码,把金字塔抛空
<?php //$n=5; for($i=1;$i<=5;$i++){ //打印空格 for($j=1;$j<=5-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-1;$k++){ //打印第一行后最后一行都打*连接 if($i==1 || $i==5){ echo "*"; }else{ //怎么打空格和*号的问题 if($k==1 || $k==2*$i-1){ echo "*"; }else{ echo " "; } } } echo "<br/>"; } ?>
3、修改代码,把金字塔倒转
<?php //$n=5; for($i=1;$i<=5;$i++){ //打印空格 for($j=1;$j<=5-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-1;$k++){ //打印第一行后最后一行都打*连接 if($i==1 || $i==5){ echo "*"; }else{ //怎么打空格和*号的问题 if($k==1 || $k==2*$i-1){ echo "*"; }else{ echo " "; } } } echo "<br/>"; } //倒转 for($i=5;$i>=0;$i--){ //打印空格 for($j=0;$j<=5-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-3;$k++){ echo "*"; } echo "<br/>"; } ?>
4、修改倒转后的代码,把金字塔抛空,并把中间的*号去掉 修改这里的代码(if($i==1 || $i==5){ //去掉$i==5 把中间抛空)
<?php //$n=5; for($i=1;$i<=5;$i++){ //打印空格 for($j=1;$j<=5-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-1;$k++){ //打印第一行后最后一行都打*连接($i==1 || $i==5) if($i==1){ //去掉$i==5 把中间抛空 echo "*"; }else{ //怎么打空格和*号的问题 if($k==1 || $k==2*$i-1){ echo "*"; }else{ echo " "; } } } echo "<br/>"; } //倒转 抛空 for($i=5;$i>=0;$i--){ //打印空格 for($j=0;$j<=5-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-3;$k++){ //怎么打空格和*号的问题 if($k==2*$i-3 || $k==1){ echo "*"; }else{ echo " "; } } echo "<br/>"; } ?>
5、修改代码,把具体的数进行参数化 :把具体数字5改成$n=5代替,随后可以设置$n的值,可以任意放大和缩小
<?php $n=5; for($i=1;$i<=$n;$i++){ //打印空格 for($j=1;$j<=$n-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-1;$k++){ //打印第一行后最后一行都打*连接($i==1 || $i==5) if($i==1){ //去掉$i==5 把中间抛空 echo "*"; }else{ //怎么打空格和*号的问题 if($k==1 || $k==2*$i-1){ echo "*"; }else{ echo " "; } } } echo "<br/>"; } //倒转 抛空 for($i=$n;$i>=0;$i--){ //打印空格 for($j=0;$j<=$n-$i;$j++){ echo " "; } //打印*号 for($k=1;$k<=2*$i-3;$k++){ //怎么打空格和*号的问题 if($k==2*$i-3 || $k==1){ echo "*"; }else{ echo " "; } } echo "<br/>"; } ?>
效果图:
最后大功告成。顺便说说 ,其实编程不难,难就难在怎么样的思路,怎样去解决问题的方法。所以大家在编程的过程中善于思考。尽管花了半天的时间去想,但是最后想出来了,问题也得到解决,所以平时要多动脑动手去实践。我们的编程能力才能提高。只有实践了,东西才能被理解,知识点也掌握了。
以上是关于java 怎样写出一个菱形程序?空心和实心的主要内容,如果未能解决你的问题,请参考以下文章