文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-29 09:06

关注

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

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

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

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

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

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

图1.菱形

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

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

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

所以由图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);

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

图2.菱形

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

下半部分:

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

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

图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();}}}

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

使用数组打印实心菱形

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

输出如图所示的图像

思路创建一个二维方形数组,写出正方形的四个角,之后用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);}}

读到这里,这篇“Java怎么用二维数组创建空心菱形”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯