记录一下自己愚蠢的错误.....
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n=scan.nextInt();
int m=scan.nextInt();
int [][] qipan=new int[n][n];
int h1,h2,l1,l2;
for(int i=0;i<m;i++){
//Java数组的索引是从0开始的,所以你需要将h1和l1减1,将h2和l2保持不变或减1取决于是否包含边界。
h1=scan.nextInt()-1;
l1=scan.nextInt()-1;
h2=scan.nextInt();
l2=scan.nextInt();
for(int j=h1;j<=h2;j++){
for(int k=l1;k<=l2;k++){
//取反颜色理解错了应该是1-原来的颜色
qipan[j][k]=1;
}
}
}
//输出
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
System.out.print(qipan[i][j]);
}
System.out.println();
}
scan.close();
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt(); // 棋盘的边长
int m = scan.nextInt(); // 操作次数
int[][] qipan = new int[n][n]; // 初始化n x n大小的棋盘
int h1, h2, l1, l2;
for (int i = 0; i < m; i++) {
h1 = scan.nextInt() - 1; // 减1以符合Java数组索引
l1 = scan.nextInt() - 1; // 减1以符合Java数组索引
h2 = scan.nextInt(); // 包含边界则减1,否则保持不变
l2 = scan.nextInt(); // 包含边界则减1,否则保持不变
for (int j = h1; j < h2; j++) { // 遍历行
for (int k = l1; k < l2; k++) { // 遍历列
qipan[j][k] = 1 - qipan[j][k]; // 取反颜色
}
}
}
// 输出
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(qipan[i][j]);
}
System.out.println();
}
scan.close();
}
}