用java编程: 输出一个用*号组成的菱形! * *** ***** *** *
作者&投稿:訾星 (若有异议请与网页底部的电邮联系)
可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。
java用 "*"输出菱形
public class Test {
public static void print(int n){
int index1 = n/2;
int index2 = index1;
for (int i = 0; i < n; i++){
for (int j = 0; j < 2 * n - 1; j++){
if (j == index1 || j == index2){
System.out.print("*");
} else{
System.out.print(" ");
}
}
if ( i >= n / 2){
index1 += 2;
index2 -= 2;
} else{
index1 -= 2;
index2 += 2;
}
System.out.println();
}
}
public static void main(String args[]){
print(9);
}
}
0 0 0 0
1 0 0
2 0
i代表行数
j/k代表列数
0 1 2 3 4
0 0
1 0 0
2 0 0 0
如图所示:
for(int i=0;i<n;j++){
for(int j=0;j<n-i;j++){
}
for(int k=0;k<i+1;k++){
}
System.out.println();
}
算法:
设边长为n
建立一个n*n直角梯形坐标盘,将前几位以依次递减的顺序改为空格因为是一行一行打印的,所以先打印n-1个空格最后添加“* ”可以发现规律前几位的空格完了后,是以如下过程循环的(用0代表空格)
0 0 0 * 0
0 0 * 0 * 0
0 * 0 * 0 * 0
既是以*0*0的过程循环
打印上三角边长为n
当第一行时i=0;
j=0是打印空格,j=1打印空格至j=n-1,
当第二行时i=1;
j=0,j=1....j=n-1打印空格
如此类推得到一个依次递减的结构
i增加,j被限制减小
所以for(int j=0;j<n-i;j++){}
打印“*”,因为在前头分析可看出是以“*0”循环的,可以再后面循环添加“*0”,因为是依次递增的
0 0 * 0
0 * 0 * 0
* 0 * 0 * 0
可写作for(int k=0;k<i+1;k++)
下三角
0 * 0 * 0 * 0 * 0
0 0 * 0 * 0 * 0
0 0 0 * 0 * 0
0 0 0 0 * 0
这个和上个很相似
空格是依次递增的
i=0;j=0
for(int j=0;j<i+1;j++)
加”*0”依次递减
for(int k=0;k<n-i;k++)
程序列子如下
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("n*n的菱形请输入n");
//input
int n=sc.nextInt();
//打印上三角
for(int i=0;i<n;i++){//控制行数,做一个边长为4个*的等腰上三角形
for(int j=0;j<n-i-1;j++){//打印空格下直三角
System.out.print(" ");
}
for(int k=0;k<i+1;k++){//打印空格后的每一个*号和空格
System.out.print("* ");
}
System.out.println();
}
//打印下三角
for(int i=0;i<n-1;i++){//控制行数,做一个等腰下三角形
for(int j=0;j<i+1;j++){//
System.out.print(" ");
}
for(int k=0;k+i+1<n;k++){
System.out.print("* ");
}
System.out.println();
}
}
}
import java.util.Scanner;
public class aa {
private int lineSize;//菱形总共占的行数:注:只能是单数!
public aa(int max){
if(max<0){
System.out.println("您输入的数据不合法:必须是大于0的整数!");
return;
}else if(max%2==0){
System.out.println("您输入的如果是偶数;将会自动加1再输出!");
this.lineSize = max+1;
}else{
this.lineSize= max;
}
//mid为最中间是第几行(行号)!
//比如输出图形为9行的菱形,中间行就是第5行,mid就是5;
int mid = (lineSize+1)/2;
for(int i=1;i<=lineSize;i++){
int j,k;
if(i<=mid){
for(j=1;j<=mid-i;j++)
System.out.print(" ");
for(k=1;k<=2*i-1;k++)
System.out.print("*");
}else{
for(j=1;j<=i-mid;j++)
System.out.print(" ");
for(k=1;k<=lineSize-2*(j-1);k++)
System.out.print("*");
}
System.out.print("\n");
}
}
public static void main(String[] args) {
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入您想要打印的菱形的行数,然后回车确认(注:数字只能是大于0的整数!");
System.out.print("请输入:");
int lineSize = sc.nextInt();
System.out.println("---------------------------");
new aa(lineSize);//要打印的菱形的行数!
System.out.println("---------------------------");
}
}
}
public class Cat {
public static void main(String[] args) {
int num = 2;
drawDiamond(num);
}
private static void drawDiamond(int num) {
for (int i = 0; i < num; i++) {
for (int j = num - i; j > 0; j--) {
System.out.print(" ");
}
for (int z = 0; z <= i * 2; z++) {
System.out.print("*");
}
System.out.print("\n");
}
for (int i = num; i >= 0; i--) {
for (int j = i; j < num; j++) {
System.out.print(" ");
}
for (int z = 0; z <= i * 2; z++) {
System.out.print("*");
}
System.out.print("\n");
}
}
}
-------------
*
***
*****
***
*
Class Test {
public static void main(String[] args){
System.out.println(" * ");
System.out.println(" *** ");
System.out.println(" ***** ");
System.out.println(" ******* ");
System.out.println(" ***** ");
System.out.println(" *** ");
System.out.println(" * ");
}
}
最简单的方法。 如果你想用 loop做,就考虑一下每一行的行号跟 每一行*号个数 的关系。 假设给定一行总共有20个字符。
for(int i=2;i>=-2;i--)//控制行数
{
for(int j=0;j<Math.abs(i)+1;j++)
System.out.print(" ");//控制每行的的空格数,如果第5行前面不要空格,可以把+3去掉
for(int j=0;j<(5-Math.abs(i)*2);j++)
System.out.print("*");//控制每行*的个数
System.out.println();//换行
}
字泻丽科: 利用双重循环来编写,外层循环控制行数,内层循环控制列数: for(int i =0;i<"行数";i++){for(int j=0;j<"列数";j++){System.out.print("*");}System.out.print(); }
大埔县15188524385: 用java编写控制台输出一个由*号组成的直角三角形,如下所示 - ?
字泻丽科: public class star {public static void main(String[] args){for(int i=0;i<=5;i++){for(int j=0;j<i;j++)System.out.print("*");System.out.println();}} }两个循环 一个管行一个管列每隔一行多输出一个
大埔县15188524385: java中怎么输入一个用*号组成的长为30,宽为5的矩阵 - ?
字泻丽科: 把System.out.println('*');改成System.out.print('*'); 把System.out.println("\n");改成System.out.println(); 就行了.完整的程序如下:public class A { public static void main(String[] args) { for(int i=0;i { for(int j=0;j { System.out.print('*'); } ...
大埔县15188524385: 用JAVA的FOR循环做一个用*号组成的菱形,菱形内是空的,就边框是*号 - ?
字泻丽科: 楼上的不行,不是标准的菱形,而且只定义了一个形式 我这个可以定义任意长度的 package src; import java.io.UnsupportedEncodingException; public class Test5 { public static void main(String args[]) throws UnsupportedEncodingException { //...
大埔县15188524385: java编程 输出*号 - ?
字泻丽科: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20String v = " ";String f = "*";String t = "";for(inti = 1;i <= 7;i++){t = cString((7-i)/2,v,false) + cString(i ,f,true) + cString((7-i)/2,v,false);i++;System.out.println(t);t = "";}...
大埔县15188524385: 求java 输出正方形(用*号)的代码! - ?
字泻丽科: 完整代码: public class a { public static void main(String[] args) { for(int i = 4;i > 0;i--){ for(int j = 4;j > 0;j--){ System.out.print("*"); } System.out.println("*"); } } }
大埔县15188524385: Java程序设计:用程序输入1个由*号组成的直角三角形,其中最大行*的个数由键盘输入. - ?
字泻丽科: 运行环境 Eclipse IDE for Java Developers Version: Mars.2 Release (4.5.2) 完整代码如下:public class GuessGame { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String line = scan.nextLine(); for(int i=0;i!=...
大埔县15188524385: 用JAVA输出用*组成的三角形,第一行一个星,第二行两个星,以此类推,谢谢~ - ?
字泻丽科: system.out.print("*"); system.out.println();
大埔县15188524385: 在Java中,如何用StringBuffer编程输出*号??
字泻丽科: import java.io.*;public class GetStringBuffer {public static void main(String args[]) {StringBuffer buf=new StringBuffer();buf.append("*");System.out.println(buf.toString());} }
大埔县15188524385: 用for语句的嵌套编写一个Java程序Square.java,要求输出一个用“*”组成的5行5列的正方形 - ?
字泻丽科: import java.io.BufferedReader; import java.io.InputStreamReader; public class Square { public static void main(String[] args) { int r; try {BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入要打印...