1.翻转数组

设存在以下数组:
char[][] chunxiao = {{ '春' , '眠' , '不' , '觉' , '晓' } ,{ '处' , '处' , '闻' , '啼' , '鸟' } ,{ '夜' , '来' , '风' , '雨' , '声' } ,{ '花' , '落' , '知' , '多' , '少' }} ;

(1) 将其输出成如下形式:

package swp.kaifamiao.codes.Java.d0809;import java.util.Arrays;/*** {class description}** @author SWP* @version 1.0.0*/
public class Text01 {public static void main(String[] args) {//初始化一个二维数组char[][] chunxiao = {{ '春' , '眠' , '不' , '觉' , '晓' } ,{ '处' , '处' , '闻' , '啼' , '鸟' } ,{ '夜' , '来' , '风' , '雨' , '声' } ,{ '花' , '落' , '知' , '多' , '少' }} ;//定义一个字符串用来存放遍历后的值String output = "";//两个for循环遍历输出二维数组所有的值,for (int i = 0; i < chunxiao.length; i++){for (int j = 0; j < chunxiao[i].length; j++){output += chunxiao[i][j];}//每循环完一轮j,进行换行,然后进入下一个i的循环output += "\n";}//输出遍历后的字符串System.out.println(output);}
}

(2)尝试设计一组循环语句,将以上形式的输出结果翻转为以下形式(旋转 90 度):

package swp.kaifamiao.codes.Java.d0809;/*** {class description}** @author SWP* @version 1.0.0*/
public class Text02 {public static void main(String[] args) {//初始化一个二维数组char[][] chunxiao = {{ '春' , '眠' , '不' , '觉' , '晓' } ,{ '处' , '处' , '闻' , '啼' , '鸟' } ,{ '夜' , '来' , '风' , '雨' , '声' } ,{ '花' , '落' , '知' , '多' , '少' }} ;//定义一个字符串用来存放遍历后的值String output = "";for (int i = 0; i <= chunxiao.length; i++){for (int j = chunxiao.length-1; j >= 0; j--){output += chunxiao[j][i];}//每循环完一轮j,进行换行,然后进入下一个i的循环output += "\n";}System.out.println(output);}
}

思考:如果是一首词该如何旋转输出?

十年生死两茫茫,不思量,自难忘。
千里孤坟,无处话凄凉。
纵使相逢应不识,尘满面,鬓如霜。
夜来幽梦忽还乡,小轩窗,正梳妆。
相顾无言,惟有泪千行。
料得年年肠断处,明月夜,短松冈。

package swp.kaifamiao.codes.Java.d0809;/*** {class description}** @author SWP* @version 1.0.0*/
public class Demo01 {public static void main(String[] args) {char[][] poem = {{'十', '年', '生', '死', '两', '茫', '茫', '\u002C', '不', '思', '量', '\u002C', '自', '难', '忘'},{'千', '里', '孤', '坟', '\u002C', '无', '处', '话', '凄', '凉', '\u3002'},{'纵', '使', '相', '逢', '应', '不', '识', '\u002C', '尘', '满', '面', '\u002C', '鬓', '如', '霜'},{'夜', '来', '幽', '梦', '忽', '还', '乡', '\u002C', '小', '轩', '窗', '\u002C', '正', '梳', '妆'},{'相', '顾', '无', '言', ',', '惟', '有', '泪', '千', '行', '\u3002'},{'料', '得', '年', '年', '肠', '断', '处', '\u002C', '明', '月', '夜', '\u002C', '短', '松', '冈'}};//定义一个poem的最长的句子的长度为max,假定为poem[0]的长度int max = poem[0].length;//遍历出最长的句子的长度为maxfor (int i = 1; i < poem.length; i++){if (poem[i].length > max){max = poem[i].length;}}//外层循环的长度要小于等于最长句子的长度maxfor (int j = 0; j < max; j++){for (int i = poem.length - 1; i >= 0; i--) {//if ( j >= poem[i].length){//填充空格、输出空格System.out.print(" " + "\t");}else {System.out.print(poem[i][j] + "\t");}}//循环完一次,换行System.out.println();}}
}


2.数组排序

//设存在以下数组:
// 设 names 数组中存放学生姓名
String[] names = { "安琪拉" , "王昭君" , "蔡文姬" , "妲己" , "张良" };
// 设 courses 数组中依次存放三门课程的名称
String[] courses = { "C++" , "Java" , "Python" };
// 设 scores 数组中依次存储的是 names 数组中各个学生的 C++ 、Java 、Python 课程的
成绩
int[][] scores = {{ 90 , 89 , 75 } ,
{ 59 , 40 , 100 } ,
{ 100 , 99 , 80 } ,
{ 80 , 61 , 61 } ,
{ 60 , 100 , 99 } ,
};

采用以下程序可以输出每个学生的姓名以及该学生各门课程的成绩:

for( int i = 0 ; i < scores.length ; i++ ){System.out.print( names[ i ] + " => " ); // 输出学生姓名
for( int j = 0 ; j < scores[ i ] .length ; j++ ){System.out.print( courses[ j ] + ":");// 输出课程名称
System.out.print( scores[ i ][ j ] ); // 输出课程成绩
if( j < scores[ i ] .length - 1 ) {System.out.print( " , " );
}
}
System.out.println();
}

(1) 设计程序按照各个学生的 Java 成绩进行排序 ( 降序 )

package swp.kaifamiao.codes.Java.d0809;import java.util.Arrays;/*** {class description}** @author SWP* @version 1.0.0*/
public class Text03 {public static void main(String[] args) {int[][] scores = {{90, 89, 75},{59, 40, 100},{100, 99, 80},{80, 61, 61},{60, 100, 99},};// 按照Java成绩选择排序,降序for (int i = 0; i < scores.length - 1; i++) {int max = i;for (int j = i + 1; j < scores.length; j++) {if (scores[j][1] > scores[max][1]) {max = j;}}int[] temp = scores[i];scores[i] = scores[max];scores[max] = temp;}for (int[] i : scores) {System.out.println(Arrays.toString(i));}}
}

(2) 设计程序,根据学生总成绩进行排序(降序排列),并输出学生姓名、每门课程的名称和
该学生的成绩、该学生的总成绩

package swp.kaifamiao.codes.Java.d0809;import com.sun.tools.javac.Main;import java.util.Arrays;/*** {class description}** @author SWP* @version 1.0.0*/
public class Text04 {public static void main(String[] args) {// 设 names 数组中存放学生姓名String[] names = { "安琪拉" , "王昭君" , "蔡文姬" , "妲己" , "张良" };// 设 courses 数组中依次存放三门课程的名称String[] courses = { "C++" , "Java" , "Python" };
// 设 scores 数组中依次存储的是 names 数组中各个学生的 C++ 、Java 、Python 课程的成绩int[][] scores = {{ 90 , 89 , 75 } ,{ 59 , 40 , 100 } ,{ 100 , 99 , 80 } ,{ 80 , 61 , 61 } ,{ 60 , 100 , 99 } ,};//下面对成绩进行排序//将每位同学的总分放到新的数组中//定义一个新的数组用来存放每位学生的总分int[] sumscores = new int[scores.length];for (int i = 0; i < scores.length; i++){int sum = 0;for (int j = 0; j < scores[i].length; j++){sum += scores[i][j];}sumscores[i] = sum;}//对总分数数组进行排序(冒泡)//外循环for (int i = 0; i < sumscores.length - 1; i++){//内循环for (int j = 0; j <sumscores.length -1 - i; j++){if (sumscores[j] < sumscores[j+1]){//换总分的排名(倒序)int temp = sumscores[j];sumscores[j] = sumscores[j+1];sumscores[j+1] = temp;// 换各科的排名(倒序)int[] tempScore = scores[j];scores[j] = scores[j + 1];scores[j + 1] = tempScore;//换名字String tempName = names[j];names[j] = names[j + 1];names[j + 1] = tempName;}}}System.out.println(Arrays.toString(sumscores));// 遍历输出for( int i = 0 ; i < scores.length ; i++ ){// 输出学生姓名System.out.print( names[ i ] + " => " );for( int j = 0 ; j < scores[ i ] .length ; j++ ){// 输出课程名称System.out.print( courses[ j ] + ":");// 输出课程成绩System.out.print( scores[ i ][ j ] );if( j < scores[ i ] .length - 1 ) {System.out.print( " , " );}}System.out.println();}}
}


3.编写一个程序,生成一个给定行数的杨辉三角

package swp.kaifamiao.codes.Java.d0809;/*** {class description}** @author SWP* @version 1.0.0*/
/*杨辉三角1          01 1        11 2 1      21 3 3 11 4 6 4 11 5 10 10 5 11. 每行元素个数是 下标 + 12. 每行第一个和最后一个是 1, 其余元素的值为其上一行的元素 + 上一行元素的前一个元素*/
import java.util.Arrays;
import java.util.Scanner;public class Text05 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入n:");int n = input.nextInt();int[][] nums = new int[n][];for (int i = 0; i < nums.length; i++) {nums[i] = new int[i + 1];// 每一个元素都是 1Arrays.fill(nums[i], 1);// j = 1 每行的第一个元素跳过, j < nums[i].length - 1 跳过最后一个  i > 1 跳过前两行for (int j = 1; i > 1 && j < nums[i].length - 1; j++) {nums[i][j] = nums[i - 1][j] + nums[i - 1][j - 1];}}for (int i = 0; i < nums.length; i++) {System.out.println(Arrays.toString(nums[i]));}}}

【Java】基础练习(七)---二维数组相关推荐

  1. 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)

    原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...

  2. java二维数组模拟用户登录_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)...

    这里分享三道编程题, 下面是我个人的视频讲解我的解题思路以及代码运行演示https://www.zhihu.com/video/1253424180936724480 1. 编程实现以下需求: 定义一 ...

  3. java练习day06-Debug-进制-二维数组-杨辉三角

    Day06 Debug Debug概述: ​ Debug是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序. Debug操作流程 ​ Debug调试,又被 ...

  4. python基础01-定义二维数组

    自学深度学习重拾python,发现自学打的基础就是不行,比如python中定义二维数组的问题,很怪,也很有意思. 找到了一篇大佬的文章:https://www.cnblogs.com/woshare/ ...

  5. 小白自学笔记——JAVA基础 3.2 多维数组

    名词解释 Java 语言里提供了支持多维数组的语法. 如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像Excel中的表格一样. 对于二维数组的理解,我们可以看成是一维数组a ...

  6. java实现n阶二维数组(n×n)的顺时针旋转90°、180°、270°

    一.首先第一步是要初始化一个你任意的n阶方阵,初始化的语句参考如下: int arr[][] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; 二 ...

  7. java中控制台输入二维数组(Scanner类总结)

    由于牛客和LeetCode上的题目不用自己写输入,但实际笔试中都需要从输入开始写,遇到需要从控制台输入二维数组的情况,故对java中的Scanner类作整理和总结. 通过 Scanner 类能获取用户 ...

  8. 【C++基础学习】二维数组的动态分配及参数传递

    1. C语言动态分配二维数组 (1)已知第二维 char (*a)[N];//指向数组的指针a = (char (*)[N])malloc(sizeof(char *) * m); printf(&q ...

  9. 10-20C#基础---一维、二维数组冒泡排序

    一.一维数组 1.定义:是某一种数据类型的数据的组合,数组用来分组基本类型或相同类型的对象.数组中的实体叫做数组的元素或成员. 2. 格式:int[ ] shuzu=new int[ 6];存放int ...

  10. java中用length求二维数组的长度

    今天刷题的时候碰到二维数组长度的问题,直接敲代码验证~ 用事实说话: 说明length求得的是二维数组的行数,即data[i][j]中的i 但如果要求二维数组的列数呢?很简单,用data[0].len ...

最新文章

  1. iOS端实现React Native差异化增量更新
  2. StringBuider 在什么条件下使用效率更高?
  3. 北师大听讲座-张建华-走近Russia
  4. Mysql学习总结(10)——MySql触发器使用讲解
  5. 字典与文本文档的转换
  6. 修改java启动参数_如何修改jvm启动参数
  7. uml里的extend和include_用例图中包含(include)扩展(extend)和泛化(generalization)关系详解...
  8. linux内核关闭网络巨帧xenomai,xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务...
  9. 主机字节序和网络字节序(大端序,小端序,网络序)
  10. 手机股票软件哪个好?这几款炒股app你不能错过!
  11. html表格的行合并代码,HTML代码制作的表格合并单元格教程
  12. DJFocus是个什么东东
  13. 独立同分布的大样本OLS回归
  14. 小程序上传头像图片裁剪
  15. web-log-parser 安装记录
  16. 2020的Android凉了?聊聊 Android 现状及出路!
  17. 我是佛前的一粒佛珠(请听配乐)
  18. 跟阿里巴巴学开会,我们拉着5位CEO聊如何“捅刀子”
  19. 计算机系统中ram表示什么,ram代表的是什么?
  20. 关于Android适配版本Q

热门文章

  1. bios显示计算机故障,讲解BIOS设置出现的故障及处理方法
  2. 使用云过程中,云共享需要注意哪些内容
  3. 越狱/Prison Break S4角色介绍
  4. 啦啦啦,,小网站大功能
  5. 浅谈AI产品经理,谁与争锋?
  6. HLSL风吹草动shader
  7. moea项目的问题解决方案
  8. 计算机毕业设计(27)java毕设作品之校园运动场地预约系统
  9. 你读博了,当初的本科舍友都怎样了?
  10. 小明学数据库系列——树形查询结构设计