我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java 如何用二维数组创建空心菱形

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java 如何用二维数组创建空心菱形

如何用二维数组创建空心菱形

提供一个我自己的实现方法,方法实现只是一个人的是靠方式,并不是代表实力,真正的实力用自己的这种思维解决别人亟待解决的问题,真才是目前我觉得的编程的意义。鸡汤喝了,精神好了!来看看我的实例。

题目:用“*”创建一个菱形空心

为了能更好的找出横纵坐标的关系,我简单做了一个菱形图

图1.菱形

从图中可以找出*点与坐标值的意义,所以此题是用二维坐标来做的;

分两部分输出图像, 上半部分:

从中间开花,给两边的值赋值为1,否则为0,最后给赋值为1的点输出*号;

  • 定义二维数组的位 int []a=new int [13][13];
  • 定义列方向上的两个点,p1,p2,即a[i][p1],a[i][p2];  

所以由图2,可知   A ,B,C点可以知道p1=a.length/2-i(在编程过程中i是0,a.length/2是6也是一行中的中点),p2=a.length/2+i; B(i,p1),C(i,p2);

图2.菱形

为什么分两部分,因为在a.lengh/2-i  ,在i等于7的时候得负了,所以并不能一直使用原来的p1,p2的值,需要重新找好横纵坐标的规律。

下半部分:

D的坐标是(i,i-a.length/2),即D(i,p3),E的坐标比较难找到关系,我也是想了很久,呵呵就是一直试,最后没办法试不出来,还是画图做分析才找到规律的,所以科学的方法是要用数学的思维,找横纵坐标点的位置关系;

图3 E点坐标分析

具体实现代码:

package com.JavaBase; 
public class lingxing {
	// 菱形
 
	public static void main(String[] args) {
		int n = 15;//n只能是奇数
		int[][] a = new int[n][n];
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[i].length; j++) {
				a[i][j] = 0;
				int p1 = a.length / 2 - i;
				int p2 = a[i].length / 2 + i;//p1,p2的规律非常好找
				if (i <= a.length / 2) {//上半部分
					a[i][p1] = 1;
					a[i][p2] = 1;
					if (a[i][j] == 1) {
						System.out.print("*");
					} else {
						System.out.print(" ");
					}
				} else {//下半部分
					int p3 = i - a.length / 2;//与p1相反
					int p4 = a.length - (i - a.length / 2) - 1;//p4的规律比较难找到
					a[i][p3] = 1;
					a[i][p4] = 1;
					if (a[i][j] == 1) {
						System.out.print("*");
					} else {
						System.out.print(" ");
					}
				}
			}
			System.out.println();
		}
	}
}

 给予借鉴和思考,方法有很多,不单只有这种,也许你的改进之后会更好。

使用数组打印实心菱形

输出如图所示的图像

思路创建一个二维方形数组,写出正方形的四个角,之后用stringbuffer中的append进行替换

知识点:

输入Scanner sc = new Scanner(System.in);  想要转换成int数要  int num =sc.nextInt();

二维数组的输出(其中一种方法)

for(int i=0;i<array.length;i++)  
	     {  
	         for(int j=0;j<array[i].length;j++)  
	         {  
	             System.out.print(array[i][j]+" ");  
	         }  
	         System.out.println();  //换行  
	     }  

正式代码

import java.util.Scanner; 
public class text_2 {
	public static void main(String[] args){
		System.out.println("请输入数组维度");
		Scanner sc = new Scanner(System.in);
		int num =sc.nextInt();
		text_2.printstart(num);			
	}
	public static void printstart(int n){
		int[][] array = new int[n][n];
		for (int row = 0;row<n/2;row++){
			for(int line = 0;line <(n/2-row);line++){
				array[row][line]=1;
				array[row][n-line-1]=1;
				array[n-row-1][line]=1;
				array[n-row-1][n-line-1]=1;
			}
		}
		for(int i=0;i<array.length;i++)  
	     {  
	         for(int j=0;j<array[i].length;j++)  
	         {  
	             System.out.print(array[i][j]+" ");  
	         }  
	         System.out.println();  //换行  
	     }  
		for(int row=0;row<n;row++){
			StringBuilder column = new StringBuilder();
			for(int line= 0;line<n;line++){
				if(array[row][line]==1){
					column.append("  ");
				}else{
					column.append("*");
				}
			}System.out.println(column);
		}
	}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java 如何用二维数组创建空心菱形

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java怎么用二维数组创建空心菱形

本文小编为大家详细介绍“Java怎么用二维数组创建空心菱形”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么用二维数组创建空心菱形”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。如何用二维数组创建空心菱形
2023-06-29

PHP中如何创建二维数组

这篇文章给大家分享的是有关PHP中如何创建二维数组的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。所谓的二维数组,简单来说就是在一维数组里面再定义多个一维数组,即一个数组中的值可以是另一个数组(可能有点片面,但是二
2023-06-20

Java二维数组如何应用

这篇文章主要讲解了“Java二维数组如何应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java二维数组如何应用”吧!1.什么是二维数组在二维数组多个元素为一维数组的数组就称为二维数组2.
2023-06-30

Java中如何使用Servlet创建二维码

本篇文章给大家分享的是有关Java中如何使用Servlet创建二维码,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。QR码介绍QR码(Quick Response 快速响应码)
2023-06-17

在 Java 中怎样实现动态创建空数组?(Java中如何动态创建空数组)

在Java编程中,动态创建空数组是一个常见的需求。以下是详细的步骤和示例代码来实现这一功能。一、使用Java的动态数组类-ArrayListJava提供了ArrayList类,它是一个
在 Java 中怎样实现动态创建空数组?(Java中如何动态创建空数组)
Java2024-12-23

如何在Java中使用二维数组

本篇文章为大家展示了如何在Java中使用二维数组,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实现了W
2023-06-15

C语言中一、二维数组如何创建和初始化

这篇文章将为大家详细讲解有关C语言中一、二维数组如何创建和初始化 ,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。(壹) 一维数组的创建和初始化 1.1 数组的创建数组是一组相同类型元素的集合。 数组的
2023-06-29

Java 如何利用二维数组打印杨辉三角?(java怎么用二维数组打印杨辉三角)

在Java编程中,打印杨辉三角是一个经典的算法问题。杨辉三角是一个由数字排列成的三角形数阵,其形状类似等腰三角形,两腰上的数都是1,其余每个数都等于它上方两数之和。以下是使用二维数组来打印杨辉三角的步骤:一、理解杨辉三角的性质
Java 如何利用二维数组打印杨辉三角?(java怎么用二维数组打印杨辉三角)
Java2024-12-19

在 Java 中如何使用数组创建 user 类?(java怎么用数组创建user类)

在Java编程中,数组是一种常用的数据结构,它可以存储多个相同类型的元素。而创建类则是面向对象编程的基础,通过创建类可以定义对象的属性和行为。那么,如何在Java中使用数组来创建user类呢?下面我们将详细介绍。一、理解user类的概念
在 Java 中如何使用数组创建 user 类?(java怎么用数组创建user类)
2024-12-13

如何使用JAVA实现二维数组遍历求和

这篇文章将为大家详细讲解有关如何使用JAVA实现二维数组遍历求和,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。/* 二维数组的遍历求和 第一小组销售额为{11, 12}万元 第二小组销售额
2023-06-02

在 Java 中如何利用变量来创建数组?(java中怎么用变量创建数组)

在Java编程中,数组是一种用于存储多个相同类型数据的数据结构。通常,我们在创建数组时会直接指定数组的大小,例如int[]array=newint[5];,这里创建了一个包含5个整数的数组。但在某些情况下,我们可能希望根据变量的值来创建数组,这就需要
在 Java 中如何利用变量来创建数组?(java中怎么用变量创建数组)
Java2024-12-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录