多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
针对每行输入,输出用“*”组成的X形图案。
5
* * * * * * * * *
6
* * * * ** ** * * * *
import java.util.Scanner; public class printX { public static void main(String[] args) { // 创建一个 Scanner 对象,用于读取用户输入 Scanner in = new Scanner(System.in); // 使用 hasNextInt() 来判断是否有整数输入,多组输入 while (in.hasNextInt()) { // 读取输入的行数 row int row = in.nextInt(); // 外层循环控制行数 i,从 0 到 row-1 for (int i = 0; i < row; i++) { // 内层循环控制列数 j,从 0 到 row-1 for (int j = 0; j < row; j++) { // 如果当前行和列相等,则打印反斜线部分 "*" if (i == j || i + j == row - 1) { System.out.print("*"); } else { // 否则打印空格 System.out.print(" "); } } // 每打印完一行需要换行 System.out.println(); } } } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { int a = in.nextInt(); //a表示一共有多少行 for(int i=0;i<a;i++){ for(int j=0;j<a;j++){ if(i==j||(i+j)==a-1){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); } } } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { int n = in.nextInt(); for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(i == j || i + j == n - 1) { System.out.print("*"); } else { System.out.print(" "); } } //换行 System.out.println(); } } } }
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int n = in.nextInt(); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(i==j||j==n+1-i){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); } } } }
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNextInt()){ int x=sc.nextInt(); int[][] arr=new int[x][x]; for(int i=0;i<x;i++){ arr[i][i]=1; arr[i][x-i-1]=1; } for(int i=0;i<x;i++){ for(int j=0;j<x;j++){ if(arr[i][j]==1) System.out.print("*"); else System.out.print(" "); } System.out.println(); } } } }
//对称图形可以用坐标的思想来解决,假设图形被放在坐标方格中, //*和_都有专属坐标,经过观察可以总结出*坐标的规律 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextInt()) { int n = sc.nextInt(); //外循环(相当于坐标x):图形总共n行,我们就循环n次 for (int i = 0; i < n; i++) { //内循环(相当于坐标y)结合上一行来看就是第i行第j个 for (int j = 0; j < n; j++) { //观察过坐标图不难发现*都处于【横纵坐标相等】或者【和等于n-1】时 if (i == j || (i + j) == n - 1) { System.out.print("*"); } else { System.out.print(" "); } } //外循环完成一次,代表一行写完,此处换行进行下一次循环 System.out.println(); } } } }
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scanner.hasNext()){ int n = scanner.nextInt(); for(int i = 0 ; i < n ;i++){ for(int j = 0;j < n ;j++){ //对角线以及逆对角线 if(i == j || i + j == (n - 1)){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(""); } } } }
import java.util.Scanner; /** * @Title: X形图案 * @Remark: KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。 * 输入描述: * 多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。 * 输出描述: * 针对每行输入,输出用“*”组成的X形图案。 * @Author: ijunfu * @Version: 1.0.0 * @Date: 2022-03-20 */ public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNextLine()) { int count = Integer.parseInt(in.nextLine()); for(int i=0; i<count; ++i) { for(int j=0; j<count; ++j) { if(i == j || j == count-i-1) { // 对角线 & 逆对角线 System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); } } } }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNextInt()){ //注意这题是要多组输入的 int n=sc.nextInt(); //进到循环后输入一个数 for(int i=0;i<n;i++){ //开始循环 for(int j=0;j<n;j++){ if(i==j||(i+j==n-1)) { //画图理解 发现i和j相等 或者 i+j==n-1的时候 System.out.print("*"); //就可以打印* 号 否则就直接打印空格,注意最后需要换行 } else System.out.print(" "); } System.out.println(); } } } }
import java.util.*; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.nextInt(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == j) { System.out.print("*"); }else if (i + j == n-1) { System.out.print("*"); }else { System.out.print(" "); } } System.out.println(); } } } }
public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); for(int i=0;i<n;i++){ for(int j=1;j<=n;j++){ if(i==(j-1) || (i+j)==n){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(" "); } } } }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int n = sc.nextInt(); String[][] arr = new String[n][n]; for(int i = 0; i < arr.length;i++){ for(int j = 0; j < arr[i].length; j++){ if(i == j){ arr[i][j] = "*"; }else if(i == n-1 - j){ arr[i][j] = "*"; }else{ arr[i][j] = " "; } } } for(int i = 0; i < arr.length;i++){ for(int j = 0; j < arr[i].length;j++){ System.out.print(arr[i][j]); } System.out.println(); } } } }
import java.util.Scanner; public class Main{ public static void main(String args[]){ Scanner scan=new Scanner(System.in); while(scan.hasNext()){ int n=scan.nextInt(); String res[][]=new String[n][n]; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ res[i][j]=" "; } } for(int i=0;i<n;i++){ res[i][i]="*"; res[i][n-1-i]="*"; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ System.out.print(res[i][j]); } System.out.println(); } } } }这道题需要点耐心
import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n = sc.nextInt(); boolean flag = true; String str = String.join("",Collections.nCopies(n," ")); for (int i = 0; i < n; i++) { char[] temp = str.toCharArray(); temp[i] = '*'; temp[n-i-1] = '*'; System.out.println(new String(temp)); } } } }