**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

破题

  1. 从控制台获取matrix大小(输出提示语句)
  2. 声明一个二维数组,长度为刚刚输入的大小
  3. 遍历数组给数组赋值(int)(Math.random()*2),同时输出元素,每行结尾换行(最后一行除外)
  4. 找整行为0、1的行下标,分情况输出
  5. 找整列为0、1的列下标,分情况输出
  6. 判断主对角线是否全部为0、1,分情况输出
  7. 判断副对角线是否全部为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的行、列和对角线相关推荐

  1. Java黑皮书课后题第4章:*4.25(生成车牌号码)假设一个车牌号码由三个大写字母和后面的四个数字组成。编写一个程序,生成一个车牌号码

    *4.25(生成车牌号码)假设一个车牌号码由三个大写字母和后面的四个数字组成.编写一个程序,生成一个车牌号码 题目 题目概述 破题 代码 题目 题目概述 *4.25(生成车牌号码)假设一个车牌号码由三 ...

  2. 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(非本题代 ...

  3. Java黑皮书课后题第7章:**7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。…在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?

    7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生.所有的储物柜在上学的第一天都是关着的.-在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的? 题目 题目描述 破题 代码 运行 ...

  4. Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)

    6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...

  5. Java黑皮书课后题第5章:*5.30(金融应用:复利值)假设你每月在储蓄账户上多存100美元,年利率为5%,那么每月利率是0.05 / 12 = 0.00417。编写程序提示用户输入数据显示定月钱数

    5.30(金融应用:复利值)假设你每月在储蓄账户上多存100美元,年利率为5%,那么每月利率是0.05 / 12 = 0.00417.编写程序提示用户输入数据显示定月钱数 题目 题目概述 破题 代码 ...

  6. Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt(100)方法显示0到100之间的前50个随机整数

    Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt方法显示0到100之间的前50个随机整数 题目 赘述 代码 题目 ...

  7. 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 ...

  8. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  9. 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 ...

最新文章

  1. Nature调查 l 中国博士生们的科研围城
  2. 五、spring boot整合mybatis-plus
  3. 最后一天,最后一刻。。。。。。情理之中,意料之外。。。。。。
  4. Java基础—8大数据类型
  5. rsync推拉模型及结合inotify实现推模型自动同步
  6. WriteN, RTMP send error
  7. html嵌套html解决办法(object/object)
  8. 一句命令删除docker所有镜像或容器
  9. JavaScript成都市地图网页代码
  10. 感受MapXTreme2004
  11. Excel表格的35招必学秘技[配图]
  12. 智慧路灯杆如何选择最合适的组网方案
  13. 做在线交易你必须知道的关于支付的知识
  14. html页面大于号,css中大于号()是什么意思?
  15. 【洛谷】P3369 【模板】普通平衡树
  16. 如何解决浏览器音视频video/audio设置自动播放autoplay无效问题?
  17. MATLAB--数字图像处理 车牌识别之分离字符
  18. 华为虚拟服务器忘记密码,远程服务器的密码忘记了
  19. viicms仿乐享微信源码官方版
  20. 【连麦demo】信令

热门文章

  1. 我眼中的计算机,我眼中的计算机-计算机开机背后的故事
  2. 干货收藏 | 如何优化前端性能?
  3. 3个因素看透 AI 技术架构方案的可行性
  4. 特稿 | OceanBase 连破纪录:蚂蚁技术人的砥砺前行
  5. Flink 实战:如何解决应用中的技术难题?
  6. wsl2设置挂载_Windows下的Linux子系统安装,WSL 2下配置docker
  7. 【枭·音频】注入灵魂—《暗影火炬城》角色语音后期处理
  8. Java高级工程师实战经验图谱
  9. 使用RMAN在ASM和文件系统之间拷贝数据
  10. golden gate 错误集锦