大家好呀!是我是我是我你们的朋友一点都不秃的丝瓜藤~
废话不多说,上代码哈哈哈!这次是关于各种图形的打印,咱就是说啊~Java世界里奇奇怪怪的形状真可爱~
今天的图形打印有:
1.线段打印
?2.打印正方形
①简单正方形
②空心正方形
3.打印三角形
①左直角三角形
②右直角三角形
③倒立直角三角形
④空心直角三角形
4.打印金字塔
①正金字塔
②倒立金字塔
5.打印菱形
6.打印K形
7.打印箭形
8.打印斜线
①正斜线
②反斜线
9.打印X图形
1.线段打印
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。
输入描述:多组输入,一个整数(1~100),表示线段长度,即“*”的数量。
输出描述:针对每行输入,输出占一行,用“*”组成的对应长度的线段。
代码分享:
public class Main{
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int i = sc.nextInt();
for(int n=0;n<i;n++){
System.out.print("*");
}
System.out.println();
}sc.close();
}
}
?2.打印正方形
①简单正方形
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正方形图案。
输入描述:多组输入,一个整数(1~20),表示正方形的长度,也表示输出行数。
输出描述:针对每行输入,输出用“*”组成的对应边长的正方形,每个“*”后面有一个空格。
?代码分享:
public class Main{
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int i = sc.nextInt();
for(int n=0;n<i;n++){
for(int m=0;m<i;m++){
System.out.print("* ");
}
System.out.println();
}
}sc.close();
}
}
②空心正方形
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。
输入描述:多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。
输出描述:针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。
?代码分享:
public class Main{
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int n= sc.nextInt(); //空心正方形n
for (int i=0;i<n;i++) {
for (int j=0;j<n;j++) {
if ( i == 0 ) {
System.out.print("* ");
}
else if (i == n-1) {
System.out.print("* ");
}
else if (j == 0 || j ==n-1) {
System.out.print("* ");
}
else {
System.out.print(" ");
}
}
System.out.println();
}
}sc.close();
}
}
3.打印三角形
①左直角三角形
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的直角三角形图案。
输入描述:多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
输出描述:针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。
?代码分享:
public class Main {
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int n= sc.nextInt(); //打印直角三角形
if(n>=2&&n<=20){
for(int i=1;i<=n;i++){
for(int k=1;k<=i;k++){
System.out.print("* ");
}
System.out.println();
}
}
}sc.close();
}
}
②右直角三角形
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。
输入描述:多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
输出描述:针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。
?代码分享:
public class Main{
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int n= sc.nextInt(); //打印直角三角形
if(n>=2&&n<=20){
for(int i=1;i<=n;i++){
for(int k=n;k>i;k--){
System.out.print(" ");
}
for (int j =1; j <=i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}sc.close();
}
}
③倒立直角三角形
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转直角三角形图案。
输入描述:多组输入,一个整数(2~20),表示翻转直角三角形直角边的长度,即“*”的数量,也表示输出行数。
输出描述:针对每行输入,输出用“*”组成的对应长度的翻转直角三角形,每个“*”后面有一个空格。
代码分享:
public class Main {
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int n= sc.nextInt(); //打印倒立直角三角形
if(n>=2&&n<=20){
for(int i=1;i<=n;i++){
for(int k=n;k>=i;k--){
System.out.print("* ");
}
System.out.println();
}
}
}sc.close();
}
}
④空心直角三角形
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”三角形图案。
输入描述:多组输入,一个整数(3~20),表示输出的行数,也表示组成三角形边的“*”的数量。
输出描述:针对每行输入,输出用“*”组成的“空心”三角形,每个“*”后面有一个空格。
?代码分享:
public class Main{
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int n= sc.nextInt(); //打印空心直角三角形
if(n>=3&&n<=20){
for(int i=1;i<=n;i++){
for(int k=1;k<=i;k++){
if(i==1||i==n){
System.out.print("* ");
}else if(k==1||k==i){
System.out.print("* ");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}sc.close();
}
}
4.打印金字塔
①正金字塔
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的金字塔图案。
输入描述:多组输入,一个整数(2~20),表示金字塔边的长度,即“*”的数量,,也表示输出行数。
输出描述:针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。
?代码分享:
public class Main{
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int n= sc.nextInt(); //打印正金字塔
if(n>=2&&n<=20){
for(int i=1;i<=n;i++){
for(int k=n;k>i;k--){
System.out.print(" ");
}
for (int j =1; j <=i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}sc.close();
}
}
②倒立金字塔
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转金字塔图案。
输入描述:多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。
输出描述:针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。
?代码分享:
public class Main {
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int n= sc.nextInt();
if(n>=2&&n<=20){
for(int i=n;i>0;i--){
for(int k=n;k>i;k--){
System.out.print(" ");
}
for (int j =i; j > 0; j--) {
System.out.print("* ");
}
System.out.println();
}
}
}sc.close();
}
}
5.打印菱形
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。
输入描述:多组输入,一个整数(2~20)。
输出描述:针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。
?代码分享:
public class Main{
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int m= sc.nextInt(); //打印菱形
int n=m+1;
if(m>=2&&m<=20){
for(int i=1;i<=n;i++){
for(int k=n;k>i;k--){
System.out.print(" ");
}
for (int j =1; j <=i; j++) {
System.out.print("* ");
}
System.out.println();
}
for(int i=n-1;i>0;i--){
for(int k=n;k>i;k--){
System.out.print(" ");
}
for (int j =i; j > 0; j--) {
System.out.print("* ");
}
System.out.println();
}
}
}sc.close();
}
}
6.打印K形
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的K形图案。
输入描述:多组输入,一个整数(2~20)。
输出描述:针对每行输入,输出用“*”组成的K形,每个“*”后面有一个空格。
?代码分享:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int m = sc.nextInt();
int n=m+1;
if (n >= 3 && n <= 20) {
for(int i=1;i<=m;i++){
for(int k=n;k>=i;k--){
System.out.print("* ");
}
System.out.println();
}
for(int i=1;i<=n;i++){
for(int k=1;k<=i;k++){
System.out.print("* ");
}
System.out.println();
}
}
}
}
}
7.打印箭形
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的箭形图案。
输入描述:本题多组输入,每行一个整数(2~20)。
输出描述:针对每行输入,输出用“*”组成的箭形。
?代码分享:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
int m=scanner.nextInt();
int n=m+1;
if(m>=2&&m<=20){
for(int i=1;i<=n;i++){
for(int k=n;k>i;k--){
System.out.print(" ");
}
for (int j =1; j <=i; j++) {
System.out.print("*");
}
System.out.println();
}
for(int i=m;i>0;i--){
for(int k=n;k>i;k--){
System.out.print(" ");
}
for (int j =i; j > 0; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
}
}
8.打印斜线
①正斜线
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正斜线形图案。
输入描述:多组输入,一个整数(2~20),表示输出的行数,也表示组成正斜线的“*”的数量。
输出描述:针对每行输入,输出用“*”组成的正斜线。
?代码分享:
public class Main{
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int i = sc.nextInt();
for(int n=i;n>0;n--){
for(int m=1;m<=i;m++){
if(m==n){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}sc.close();
}
}
②反斜线
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的反斜线形图案。
输入描述:多组输入,一个整数(2~20),表示输出的行数,也表示组成反斜线的“*”的数量。
输出描述:针对每行输入,输出用“*”组成的反斜线。
?代码分享:
public class Main{
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
while(sc.hasNext()){
int i = sc.nextInt();
for(int n=1;n<=i;n++){
for(int m=1;m<=i;m++){
if(m==n){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}sc.close();
}
}
9.打印X图形
题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。
输入描述:多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
输出描述:针对每行输入,输出用“*”组成的X形图案。
?代码分享:
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();
if(x>=2&&x<=20){
char[][] arr = new char[x][x];
//设置数组全为空格
for (int i = 0; i < x; i++) {
for (int j = 0; j < x; j++) {
arr[i][j] = ' ';
}
}
//利用下标设置*
for (int i = 0; i < x; i++) {
int left = 0;
int right = x - 1;
for (; left < x && right >= 0; left++, right--) {
arr[i][i] = '*';
arr[left][right] = '*';
}
}
//打印数组
for (int i = 0; i < x; i++) {
for (int j = 0; j < x; j++) {
System.out.printf("%c", arr[i][j]);
}
System.out.println();
}
}
}
}
}
|