java - 使用 Java 对 Magic Square 进行 3x3 2D 数组测试
问题描述
所以我得到了一个任务来编写一个程序来检查一个正方形是否是一个幻方,如果是,就打印它的幻数。
如果正方形确实是幻方,我编写的代码就可以工作,但是当用户键入的数字不是幻方时,它不会给出“错误”消息。
输出是它应该的样子,当它是一个幻方时,但当它不是时,输出总是幻数:0。
这是代码:
import java.util.Scanner;
public class MagischesQuadrat {
public static void main(String[] args) {
int [][] square = new int[3][3];
Scanner keyScan = new Scanner(System.in);
// Read in square
System.out.println("Please enter 9 numbers and confirm with Enter");
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
square[i][j] = keyScan.nextInt();
}
}
boolean magic = true;
int magicNum = 0;
// TODO: Check the square and set the variables magic and magic number to the correct value.
int a = square[0][0] + square[0][1] + square[0][2];
int b = square[1][0] + square[1][1] + square[1][2];
int c = square[2][0] + square[2][1] + square[2][2];
int d = square[0][0] + square[1][0] + square[2][0];
int e = square[0][1] + square[1][1] + square[2][1];
int f = square[0][2] + square[1][2] + square[2][2];
if (a == b && a == c && a == d) {
magic = true;
magicNum = a;
}
// Output of the result
if (magic) {
System.out.println("Magic number: "+magicNum);
} else {
System.out.println("Not magic");
}
keyScan.close();
}
}
解决方案
代替:
if (a == b && a == c && a == d) {
magic = true;
magicNum = a;
}
和:
magic = a == b && a == c && a == d;
magicNum = a;
推荐阅读
- java - 后台服务中的 Android webRTC 视频通话
- sql - Alation 查询表单 - 参数不适用于“IN”运算符
- java - 如何比较dynamoDB中的两个java时间戳
- javascript - 从 Typescript Angular 8 中的对象数组中获取不同的对象
- c++ - 接收输入的类中的 istream 友元函数出现问题
- r - 如何将字符串“MMM DD YYYY”转换为日期 YYYY-MM-DD
- angular - 在根模块中导入所有需要的模块
- javascript - 用 JS 显示一个随机的 css Sprite
- python - 我有一个错误,将 t 作为海龟导入。我该怎么办?
- visual-studio-code - vscode 不记得 MRU 的?