Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
118 views
in Technique[技术] by (71.8m points)

java - Wrong output trying to print a triangle

I tried to print a pattern

* * * * *
* * * * 
* * *
* *
*

I wrote this code in java

public class Psttr {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner h=new Scanner(System.in);
        int n=h.nextInt();
        int x=n;
        int i=1;
        
        for( i=1;i<=n;i++);
        {
            for(int j=1;j<=x;j++) {
                System.out.print("*");  
            }
            x=x-1;
            System.out.println();
        }

    }

}

I didn't get the right output, always *****

Expected output:

* * * * *
* * * * 
* * *
* *
*
question from:https://stackoverflow.com/questions/66061738/wrong-output-trying-to-print-a-triangle

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Your code is good, just get rid of the semicolon after the first cycle so it would be:

public class Psttr {

    public static void main(String[] args) {
        Scanner h=new Scanner(System.in);
        int n=h.nextInt();
        int x=n;
        for(int i=1;i<=n;i++){ // You can init "i" here
            for(int j=1; j<=x--; j++) {
                System.out.print("*");
            }
            x--; // You can use post-decrement (or pre, it's the same here)
            System.out.print("
");
        }
    }
} 

Also it seems you're quite new to programming so I added some little advice to write "better code"


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...