日期:2014-05-20  浏览次数:20777 次

程序出问题了,诚请高手指点
要求打印一个菱形:
    *
  ***
*****
  ***
    *
我的程序编译没错误,就是打出来的不符合要求;不知道错在那里,菜鸟刚开始学,
程序写的很烂,还请高手不吝赐教,小弟先谢过了。
class   LingXing{
static   void   paint(){
for(int   i=0;i <5;i++){
if(i==2){                             //第3行打印五个星
for(int   j=0;j <5;j++){
System.out.println( "* ");
}
System.out.println( "\n ");
}
else   if(i==1||i==3){       //2、4行打印三个星
        for(int   j=0;j <5;j++){
        if(j!=0||j!=4)
        System.out.println( "* ");
        else
        System.out.println( "   ");
        }
        System.out.println( "\n ");
}
        else   if(i==0||i==4){       //1、5行打印一个星
        for(int   j=0;j <5;j++){
        if(j==2)
        System.out.println( "* ");
        else
                System.out.println( "   ");
        }System.out.println( "\n ");
    }
    }
}
public   static   void   main(String   args[]){
paint();
}

}

------解决方案--------------------
关注
------解决方案--------------------
1.把你的println全部换成print
2.第12行if(j!=0 && j!=4)这句改成if(j!=0 && j!=4)

------解决方案--------------------
class LingXing
{
static void paint()
{
for(int i=0;i <5;i++) {
if(i==2){ //第3行打印五个星
for(int j=0;j <5;j++){
System.out.print( "* ");
}
System.out.println( "\n ");
}
else if(i==1||i==3) { //2、4行打印三个星
for(int j=0;j <5;j++) {
if(j < 3)
System.out.print( "* ");
else
System.out.print( " ");
}
System.out.println( "\n ");
}
else if(i==0||i==4) { //1、5行打印一个星
for(int j=0;j <5;j++) {
if(j < 1)
System.out.print( "* ");
else
System.out.print( " ");
}
System.out.println( "\n ");
}
}
}

public static void main(String[] args)
{
paint();
}
}

按照LZ的思路改了一下,可以打出菱形了
其实方法有很多,完全没必要这么麻烦……
------解决方案--------------------
我用jsp做的,可以打印任意数量的菱行,n可以任选.

<%@ page contentType= "text/html;charset=UTF-8 "%>
<%!
String kg(int n){//n个空格组成的字符串
String xx= " ";
for(int i=1;i <=n;i++){
xx+= " ";
}
return xx;
}

String xx(int n){//n个*组成的字符串
String xx= " ";
for(int i=1;i <=n;i++){
xx+= "* ";
}
return xx;
}
%>
<%
int n=5;//任一行的最多星星数量,此数可以改动为任意奇数

for(int i=1;i <=(n/2);i++){