Java黑皮书课后题第8章:**8.14(探讨矩阵)编写程序,提示用户输入一个方阵的长度,随机地在矩阵中填入0和1,打印这个矩阵,然后找出整行、整列或者对角线都是1或0的行、列和对角线
**8.14(探讨矩阵)编写程序,提示用户输入一个方阵的长度,随机地在矩阵中填入0和1,打印这个矩阵,然后找出整行、整列或者对角线都是1或0的行、列和对角线
- 题目
- 题目描述与运行示例
- 破题
- 代码
题目
题目描述与运行示例
**8.14(探讨矩阵)编写程序,提示用户输入一个方阵的长度,随机地在矩阵中填入0和1,打印这个矩阵,然后找出整行、整列或者对角线都是1或0的行、列和对角线
运行示例:
Enter the size for the matrix: 4
1100
0101
1011
1101
No same numbers on a row
No same numbers on a column
All 1s on the major diagonal
No same numbers on the sub-diagonal
破题
- 从控制台获取matrix大小(输出提示语句)
- 声明一个二维数组,长度为刚刚输入的大小
- 遍历数组给数组赋值(int)(Math.random()*2),同时输出元素,每行结尾换行(最后一行除外)
- 找整行为0、1的行下标,分情况输出
- 找整列为0、1的列下标,分情况输出
- 判断主对角线是否全部为0、1,分情况输出
- 判断副对角线是否全部为0、1,分情况输出
代码
import java.util.Scanner;public class Test8_14 {public static void main(String[] args) {//1. 从控制台获取matrix大小(输出提示语句)Scanner input = new Scanner(System.in);System.out.print("Enter the size for the matrix: ");int length = input.nextInt();//2. 声明一个二维数组,长度为刚刚输入的大小int[][] arr = new int[length][length];//3. 遍历数组给数组赋值(int)(Math.random()*2),同时输出元素,每行结尾换行for (int i = 0 ; i < length ; i++){for (int j = 0 ; j < length ; j++){arr[i][j] = (int)(Math.random()*2);System.out.print(arr[i][j]);}System.out.println();}//4. 找整行为0、1的行下标,分情况输出int temp1 = 0;boolean bool1 = true, have_output = false;for (int i = 0 ; i < length ; i++){temp1 = arr[i][0];bool1 = true;for (int j = 0 ; j < length ; j++){if (arr[i][0] != arr[i][j]){bool1 = false;}}if (bool1){System.out.println("All " + temp1 + "s on row " + i);have_output = true;}}if ( ! have_output ){System.out.println("No same numbers on a row");}//5. 找整列为0、1的列下标,分情况输出int temp2 = 0;boolean bool2 = true;have_output = false;for (int j = 0 ; j < length ; j++){temp2 = arr[j][0];bool2 = true;for (int i = 0 ; i < length ; i++){if (arr[j][0] != arr[i][j]){bool2 = false;}}if (bool2){System.out.println("All " + temp2 + "s on col " + j);have_output = true;}}if ( ! have_output ){System.out.println("No same numbers on a column");}//6. 判断主对角线是否全部为0、1,分情况输出int temp3 = arr[0][0];boolean bool3 = true;for (int i = 0 ; i < length ; i++){if (temp3 != arr[i][i])bool3 = false;}if (bool3){System.out.println("All " + temp3 + "s on the major diagonal");} else {System.out.println("No same numbers on the major diagonal");}//7. 判断副对角线是否全部为0、1,分情况输出int temp4 = arr[0][length-1];boolean bool4 = true;for (int i = 0 ; i < length ; i++){if (temp3 != arr[i][length - i - 1])bool4 = false;}if (bool4){System.out.println("All " + temp4 + "s on the sub-diagonal");} else {System.out.println("No same numbers on the sub-diagonal");}}
}
Java黑皮书课后题第8章:**8.14(探讨矩阵)编写程序,提示用户输入一个方阵的长度,随机地在矩阵中填入0和1,打印这个矩阵,然后找出整行、整列或者对角线都是1或0的行、列和对角线相关推荐
- Java黑皮书课后题第4章:*4.25(生成车牌号码)假设一个车牌号码由三个大写字母和后面的四个数字组成。编写一个程序,生成一个车牌号码
*4.25(生成车牌号码)假设一个车牌号码由三个大写字母和后面的四个数字组成.编写一个程序,生成一个车牌号码 题目 题目概述 破题 代码 题目 题目概述 *4.25(生成车牌号码)假设一个车牌号码由三 ...
- Java黑皮书课后题第7章:*7.6(修改程序清单5-15)程序清单5-15通过检验2、3、4…n/2是否是数n的因子来判断n是否为素数。判断n是否素数的更高效的方法是检验小于等于根n的素数是否有n整
*7.6(修改程序清单5-15)程序清单5-15通过检验2.3.4-n/2是否是数n的因子来判断n是否为素数.判断n是否素数的更高效的方法改写5-15 题目 题目描述 破题 程序清单5-15(非本题代 ...
- Java黑皮书课后题第7章:**7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。…在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?
7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生.所有的储物柜在上学的第一天都是关着的.-在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的? 题目 题目描述 破题 代码 运行 ...
- Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)
6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...
- Java黑皮书课后题第5章:*5.30(金融应用:复利值)假设你每月在储蓄账户上多存100美元,年利率为5%,那么每月利率是0.05 / 12 = 0.00417。编写程序提示用户输入数据显示定月钱数
5.30(金融应用:复利值)假设你每月在储蓄账户上多存100美元,年利率为5%,那么每月利率是0.05 / 12 = 0.00417.编写程序提示用户输入数据显示定月钱数 题目 题目概述 破题 代码 ...
- Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt(100)方法显示0到100之间的前50个随机整数
Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt方法显示0到100之间的前50个随机整数 题目 赘述 代码 题目 ...
- Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类
Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...
- Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的
Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...
- Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字
Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...
最新文章
- Nature调查 l 中国博士生们的科研围城
- 五、spring boot整合mybatis-plus
- 最后一天,最后一刻。。。。。。情理之中,意料之外。。。。。。
- Java基础—8大数据类型
- rsync推拉模型及结合inotify实现推模型自动同步
- WriteN, RTMP send error
- html嵌套html解决办法(object/object)
- 一句命令删除docker所有镜像或容器
- JavaScript成都市地图网页代码
- 感受MapXTreme2004
- Excel表格的35招必学秘技[配图]
- 智慧路灯杆如何选择最合适的组网方案
- 做在线交易你必须知道的关于支付的知识
- html页面大于号,css中大于号()是什么意思?
- 【洛谷】P3369 【模板】普通平衡树
- 如何解决浏览器音视频video/audio设置自动播放autoplay无效问题?
- MATLAB--数字图像处理 车牌识别之分离字符
- 华为虚拟服务器忘记密码,远程服务器的密码忘记了
- viicms仿乐享微信源码官方版
- 【连麦demo】信令