将你其中某些问题的答案放在代码注释中了.
我们提供的服务有:网站设计、做网站、微信公众号开发、网站优化、网站认证、海陵ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的海陵网站制作公司
这个程序输出的是固定的九宫格,我想,是根据固有的九宫格中的数字与数组下标的关系来写的代码。
希望对你有所帮助,加油!
class S{
public static void main(String[] args) {
int arr[][] = new int[3][3];
//创建一个三阶方阵
int a = 2;
//第3行的行下标
//???这里是什么意思,2从何而来
//A:java中数组的下标从0开始
int b = 3/2;
//第2列的列下标
//???同上
//A:这里由于b=1,(int)/(int),java中数组的下标从0开始
for(int i=1;i=9;i++){
//给数组赋值
arr[a++][b++] = i;
if(i%3==0){
//如果i是3的倍数——————???为什么要判断是不是3的倍数
a = a-2;
//————————————————???if...else里面的语句是什么意思,作用是什么
b = b-1;//————————————————???同上
}
//使a,b回到起点:a=2,b=1;
else{
//如果i不是3的倍数//————————————————???同上
a = a%3;
b = b%3;
}
}
//????九宫格的每一行、每一列、对角线都等于15,
//???但是这里连一个15这个数字都没有出现,但还是成功输出
//————————————————————???他是怎么做到的
System.out.println("输出九宫格:");
//遍历输出九宫格
for(int i=0;i3;i++){
for(int j=0;j3;j++){
System.out.print(arr[i][j]+" ");
}
System.out.print("\n");//从你的程序中将此语句上移到此位置
}
}
}
效果图
参考代码
import java.awt.*;
import javax.swing.*;
public class GridFrame extends JFrame {
// 指定横向格子数量
static final int W_NUM = 3;
// 指定竖向格子数量
static final int H_NUM = 3;
// 指定每个格子的宽
static final int CELL_WIDTH = 50;
// 指定每个格子的高
static final int CELL_HEIGHT = 50;
CellPanel cp;
public GridFrame() {
cp = new CellPanel();
this.add(cp);
this.setBounds(350, 100, W_NUM * CELL_WIDTH+15 , H_NUM * CELL_HEIGHT
+ 40);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setTitle("网格窗口");
this.setVisible(true);
}
public static void main(String[] args) {
new GridFrame();
}
class CellPanel extends JPanel {
@Override
public void paint(Graphics g) {
super.paint(g);
for (int i = 0; i H_NUM; i++) {
for (int j = 0; j W_NUM; j++) {
g.setColor(new Color((int) (Math.random() * 256),
(int) (Math.random() * 256),
(int) (Math.random() * 256)));
g.fill3DRect(j * CELL_WIDTH, i * CELL_HEIGHT, CELL_WIDTH,
CELL_HEIGHT, true);
}
}
}
}
}
import java.util.Scanner;
public class test
{
int[] number;
int[][] op;
public void operation(int p,int start,int end)
{
if(p==1){number[start-1]=end;}
else if(p==2)
{ int sum=0;
for(int i=start-1;iend;i++)sum+=number[i];
System.out.println(sum);
}
else if(p==3)
{int max=Integer.MIN_VALUE;
for(int i=start-1;iend;i++)if(number[i]max)max=number[i];
System.out.println(max);
}
else
{
System.out.println("非法操作");
}
}
public static void main(String[] args)
{
int i=0,j=0;
test t=new test();
int n=0,m=0;
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
m=sc.nextInt();
t.number=new int[n];
for(i=0;in;i++)t.number[i]=sc.nextInt();
t.op=new int[m][];
for(i=0;im;i++)
{
t.op[i]=new int[3];
for(j=0;j3;j++)
t.op[i][j]=sc.nextInt();
}
for(i=0;im;i++)
{
t.operation(t.op[i][0],t.op[i][1],t.op[i][2]);
}
}
}
drawRect
public void drawRect(int x,
int y,
int width,
int height)绘制指定矩形的边框。矩形的左边和右边位于 x 和 x + width。顶边和底边位于 y 和 y + height。使用图形上下文的当前颜色绘制该矩形。
参数:
x - 要绘制矩形的 x 坐标。
y - 要绘制矩形的 y 坐标。
width - 要绘制矩形的宽度。
height - 要绘制矩形的高度。