Java练习七答案
翻转数组
设存在以下数组:
char[][] chunxiao = {
{ '春' , '眠' , '不' , '觉' , '晓' } ,
{ '处' , '处' , '闻' , '啼' , '鸟' } ,
{ '夜' , '来' , '风' , '雨' , '声' } ,
{ '花' , '落' , '知' , '多' , '少' }
} ;
将其输出成如下形式
- 尝试设计一组循环语句,将以上形式的输出结果翻转为以下形式(旋转 90 度):
思考: 如果是一首词该如何旋转输出:
十年生死两茫茫,
不思量,
自难忘。
千里孤坟,
无处话凄凉。
纵使相逢应不识,
尘满面,
鬓如霜。
夜来幽梦忽还乡,
小轩窗,
正梳妆。
相顾无言,
惟有泪千行。
料得年年肠断处,
明月夜,
短松冈。
/**
* @title:Flip_the_array
* @author:nanzhou
* @date:2023.8.9
*/
// 设存在以下数组:
//
// ```java
// char[][] chunxiao = {
// { '春' , '眠' , '不' , '觉' , '晓' } ,
// { '处' , '处' , '闻' , '啼' , '鸟' } ,
// { '夜' , '来' , '风' , '雨' , '声' } ,
// { '花' , '落' , '知' , '多' , '少' }
// } ;
// ```
//
// 将其输出成如下形式
//
// ![image-20230809190550417](https://s2.loli.net/2023/08/09/IQA1aO7LxopH2Xq.png)
//
// - 尝试设计一组循环语句,将以上形式的输出结果翻转为以下形式(旋转 90 度):
public class Flip_the_array {
public static void main(String[] args) {
// char[][] chunxiao = {
// {'春', '眠', '不', '觉', '晓', ','},
// {'处', '处', '闻', '啼', '鸟', '。'},
// {'夜', '来', '风', '雨', '声', ','},
// {'花', '落', '知', '多', '少', '。'}
// };
char[][] chunxiao = {
{'十', '年', '生', '死', '两', '茫', '茫', ','},
{'不', '思', '量', ','},
{'自', '难', '忘', '。'},
{'千', '里', '孤', '坟', ','},
{'无', '处', '话', '凄', '凉', '。'},
{'纵', '使', '相', '逢', '应', '不', '识', ','},
{'尘', '满', '面', ','},
{'鬓', '如', '霜', '。'},
{'夜', '来', '幽', '梦', '忽', '还', '乡', ','},
{'小', '轩', '窗', ','},
{'正', '梳', '妆', '。'},
{'相', '顾', '无', '言', ','},
{'惟', '有', '泪', '千', '行', '。'},
{'料', '得', '年', '年', '肠', '断', '处',','},
{'明', '月', '夜', ','},
{'短', '松', '冈', '。'}
};
System.out.println("正序输出");
for (int i = 0; i < chunxiao.length; i ) {
for (int j = 0; j < chunxiao[i].length; j ) {
System.out.print(chunxiao[i][j] "\t");
}
System.out.println();
}
System.out.println("旋转90");
int maxLength = 0;
int maxIndex = -1;
for (int i = 0; i < chunxiao.length; i ) {
int length = 0;
for (int j = 0; j < chunxiao[i].length; j ) {
length = chunxiao[i][j];
}
if (length > maxLength) {
maxLength = length;
maxIndex = i;
}
}
for (int i = 0; i < chunxiao[maxIndex].length ; i ) {
for (int j = chunxiao.length - 1; j >= 0; j--) {
if (i >= chunxiao[j].length) {
System.out.print("\t");
} else
System.out.print(chunxiao[j][i] "\t");
}
System.out.println();
}
}
}
数组排序
设存在以下数组:
// 设 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();
}
-
设计程序按照各个学生的 Java 成绩进行排序 ( 降序 )
import java.util.Arrays; /** * @title:Array_sorting * @author:nanzhou * @date:2023.8.9 */ //## 数组排序 // // 设存在以下数组: // // ```java //// 设 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}, // }; // ``` // // 采用以下程序可以输出每个学生的姓名以及该学生各门课程的成绩:采用以下程序可以输出每个学生的姓名以及该学生各门课程的成绩: // // ```java // 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 成绩进行排序 ( 降序 ) // // 2. 设计程序,根据学生总成绩进行排序(降序排列),并输出学生姓名、每门课程的名称和 该学生的成绩、该学生的总成绩 public class Array_sorting { 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}, }; 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; String temp1 = names[i]; names[i] = names[max]; names[max] = temp1; } for (int i = 0; i < names.length; i ) { System.out.print(names[i] ": "); for (int j = 0; j < scores[i].length; j ) { System.out.print(courses[j] "=" scores[i][j] "\t"); } System.out.println(); } } }
-
设计程序,根据学生总成绩进行排序(降序排列),并输出学生姓名、每门课程的名称和 该学生的成绩、该学生的总成绩
import java.util.Arrays; /** * @title:Array_sorting * @author:nanzhou * @date:2023.8.9 */ //## 数组排序 // // 设存在以下数组: // // ```java //// 设 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}, // }; // ``` // // 采用以下程序可以输出每个学生的姓名以及该学生各门课程的成绩:采用以下程序可以输出每个学生的姓名以及该学生各门课程的成绩: // // ```java // 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 成绩进行排序 ( 降序 ) // // 2. 设计程序,根据学生总成绩进行排序(降序排列),并输出学生姓名、每门课程的名称和 该学生的成绩、该学生的总成绩 public class Array_sorting2 { 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[][] sum = new int[scores.length][2]; for (int i = 0; i < scores.length; i ){ sum[i][0] = Arrays.stream(scores[i]).sum(); sum[i][1] = i; } // 插入排序,按照总成绩 for (int i = 1; i < sum.length; i ) { int index = i - 1; int[] num = sum[i]; while (index >= 0 && sum[index][0] < num[0]) { sum[index 1] = sum[index]; index--; } sum[index 1] = num; } for (int[] i: sum) { System.out.println(names[i[1]] "=>" courses[0] scores[i[1]][0] '\t' courses[1] scores[i[1]][1] '\t' courses[2] scores[i[1]][2] '\t' i[0]); } } }
杨辉三角
编写一个程序,生成一个给定行数的杨辉三角
import java.util.Scanner;
/**
* @title:Yang_Hui_triangle
* @author:nanzhou
* @date:2023.8.9
*/
//需求: 打印杨辉三角形(行数可以键盘录入)
// 分析: 看这种图像的规律
// A:任何一行的第一列和最后一列都是1
// B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。
// 步骤:
// / / //// /
// 首先定义一个二维数组。行数如果是n,我们把列数也先定义为n。A:这个n的数据来自于键盘录入。
// 给这个二维数组任何一行的第一列和最后一列赋值为1B:按照规律给其他元素赋值从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。D: 遍历这个二维数组,
// 杨辉三角的基本性质是:第n行第m个数可表示为C_{n-1}^{m-1},其中C表示组合数。杨辉三角的每一行都是等差数列,首项为1,公差为1/2^(n-1)。
public class Yang_Hui_triangle {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[][] arr = new int[n][n];
for (int i = 0; i < arr.length; i ) {
for (int j = 0; j <= i; j ) {
if (j == 0 || j == i) {
arr[i][j] = 1;
} else {
arr[i][j] = arr[i - 1][j - 1] arr[i - 1][j];
}
System.out.print(arr[i][j] "\t");
}
System.out.println();
}
}
}
复制数组【拓展】
有如下数组 nums
,请通过删除掉其中的 33 ,得到一个新的数组 newNums
int[] nums = {2, 11, 33, 44, 55, 66, 277}
//newNums = {2, 11, 44,55, 66, 277}
使用多种方式实现:
-
for
循环(自己写方法实现)import java.util.Arrays; /** * @title:Delete * @author:nanzhou * @date:2023.8.9 */ //## 复制数组【拓展】 // // 有如下数组 `nums `,请通过删除掉其中的 33 ,得到一个新的数组` newNums` // // ``` // int[] nums = {2, 11, 33, 44, 55, 66, 277} // //newNums = {2, 11, 44,55, 66, 277} // ``` // // 使用多种方式实现: // // 1. `for` 循环(自己写方法实现) // 2. `System `类中的 `arraycopy `方法实现 public class Delete { public static void main(String[] args) { int[] nums = {2, 11, 33, 44, 55, 66, 277}; // 1. `for` 循环(自己写方法实现) int[] newnums = new int[nums.length-1]; int count = 0; for (int i = 0; i < nums.length; i ) { if (nums[i] != 33) { newnums[count ] = nums[i]; } } } }
-
System
类中的arraycopy
方法实现import java.util.Arrays; /** * @title:Delete * @author:nanzhou * @date:2023.8.9 */ //## 复制数组【拓展】 // // 有如下数组 `nums `,请通过删除掉其中的 33 ,得到一个新的数组` newNums` // // ``` // int[] nums = {2, 11, 33, 44, 55, 66, 277} // //newNums = {2, 11, 44,55, 66, 277} // ``` // // 使用多种方式实现: // // 1. `for` 循环(自己写方法实现) // 2. `System `类中的 `arraycopy `方法实现 public class Delete { public static void main(String[] args) { int[] nums = {2, 11, 33, 44, 55, 66, 277}; // 2. `System `类中的 `arraycopy `方法实现 int[] newnums = Arrays.stream(nums).filter(x -> x != 33).toArray(); System.out.println(Arrays.toString(newnums)); } }
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbbhfe
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13