网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如3阶魔方阵为

8 1 6

3 5 7

4 9 2

要求用Applet实现上述魔方阵。窗口中包括提示栏,提示输入0~15之间的奇数;输入框,输入方阵的阶数;按钮;点击则输出魔方阵;画布用于输出结果。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

注意:不改动程序的结构,不得增行或删行。

源程序文件代码清单如下:

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

import java.lang.Math.*;

/*

<applet code="ex10_3.class" width=800 height=400>

</applet>

*/

public class ex10_3 extends Applet implements ActionListener

{

Panel pane=new Panel();

drawWnd dw;

Label 11 = new Label("输入(0~15的奇数): ");

TextField tf1 = new TextField(5);

Button btn = new Button("OK");

int[] [] a=new int[16] [16];

int n=15;

public void init()

{

pane.setLayout(new FlowLayout(FlowLayout.CENTER, 25,5));

pane.add(11);

pane.add(tf1);

pane.add(btn);

pane.addActionListener(this);

add("North",pane);

dw=new drawWnd();

add("South",dw);

}

class drawWnd extends Canvas

{

drawWnd ( )

{

setSize(300,300);

setBackground(Color.GRAY);

}

public void paint(Graphics g)

{

g.setColor(Color. GREEN);

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

g.drawString(Integer.toString(a[i] [j]),i*20,j*20);

}

}

public void actionPerformed(ActionEvent ae)

}

try{

n=Integer.parseInt (tf1.getText ());

int i=1, j=1;

for (i=1;i<=n;i++)

for (j=1; j<=n; j++)

a[i] [j]=0;

j=n/2+1;

a[i] [j]=1;

for (int k=1; k<=n*n; k++)

{

i--;

j++;

if((i<1)&&(j>n))

{

i=i+2;

j--;

}

else

{

if (i<1)

i=n;

if (j>n)

j=1;

}

if (a[i] [j]==0)

a[i] [j]=k;

else{

i=i+2;

j--;

a[i] [j]=k;

}

}

dw. repaint ( );

}

catch (NumberFormatException nfe)

&n


参考答案

更多 “ 下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如3阶魔方阵为8 1 63 5 74 9 2要求用Applet实现上述魔方阵。窗口中包括提示栏,提示输入0~15之间的奇数;输入框,输入方阵的阶数;按钮;点击则输出魔方阵;画布用于输出结果。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。源程序文件代码清单如下:import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.lang.Math.*;/*<applet code="ex10_3.class" width=800 height=400></applet>*/public class ex10_3 extends Applet implements ActionListener{Panel pane=new Panel();drawWnd dw;Label 11 = new Label("输入(0~15的奇数): ");TextField tf1 = new TextField(5);Button btn = new Button("OK");int[] [] a=new int[16] [16];int n=15;public void init(){pane.setLayout(new FlowLayout(FlowLayout.CENTER, 25,5));pane.add(11);pane.add(tf1);pane.add(btn);pane.addActionListener(this);add("North",pane);dw=new drawWnd();add("South",dw);}class drawWnd extends Canvas{drawWnd ( ){setSize(300,300);setBackground(Color.GRAY);}public void paint(Graphics g){g.setColor(Color. GREEN);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)g.drawString(Integer.toString(a[i] [j]),i*20,j*20);}}public void actionPerformed(ActionEvent ae)}try{n=Integer.parseInt (tf1.getText ());int i=1, j=1;for (i=1;i<=n;i++)for (j=1; j<=n; j++)a[i] [j]=0;j=n/2+1;a[i] [j]=1;for (int k=1; k<=n*n; k++){i--;j++;if((i<1)(j>n)){i=i+2;j--;}else{if (i<1)i=n;if (j>n)j=1;}if (a[i] [j]==0)a[i] [j]=k;else{i=i+2;j--;a[i] [j]=k;}}dw. repaint ( );}catch (NumberFormatException nfe)&n ” 相关考题
考题 阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】魔方阵,又叫幻方,在我国古代称为“纵横图”。由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。奇数阶魔方阵的生成方法如下:(1)第一个位置在第一行正中。(2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。(3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:8 1 63 5 74 9 2了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m, n。其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了 MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。【程序】include <stdio.h>define MAX 15void main(){int n;int m=1;int i,j;int a[MAX][MAX];printf("Please input the rank of matrix:");scanf("%d",n);i=0;(1)while((2))a[i][j]=m;m++;i--;j++;if((m-1)%n==0 m>1){(3)j=j-1;}if(j>(n-1)) //超出上界(4)if(j>(n-1))(5)}for(i=0;i<n;i++) //输出魔方阵for(j=0;j<n;j++){if(a[i][j]/10==0)printf("%d ",a[i][j]); //对程序无影响,只是使输出的数每一列对齐elseprintf("%d ",a[i][j]);if(j==(n-1))printf("\n");}}

考题 阅读以下说明和C语言程序,将应填入(n)处的字句写在答题纸的对应栏内。【说明】魔方阵,又叫幻方,在我国古代称为纵横图.由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。奇数阶魔方阵的生成方法如下:(1)第一个位置在第一行正中。(2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。(3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:816357492了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m,n.其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。【程序】#include#defineMAX15voidmain(){intn;intm=1;inti,j;inta[MAX][MAX];printf(Pleaseinputtherankofmatrix:);scanf(%d,n);i=0;(1)while((2)){a[i][j]=m;m++;i--;j++;if((m-1)%n==0m1){(3)j=j-1;}if(i0)//超出上界(4)if(j(n-1))//超出右边界(5)}for(i=0;ifor(j=0;j{if(a[i][j]/10==0)printf(%d,a[i][j]);//对程序无影响,只是使输出的数每一列对齐elseprintf(%d,a[i][j]);if(j==(n-1))printf(\n);}}

考题 设A是一个n阶方阵,已知|A|=2,则|-2A|等于( ).A. B. C. D.

考题 设A,B均为n 阶方阵,下面结论正确的是( ).

考题 某公司举办运动会,参赛的员工组成一个正方形方阵,若减少方阵的一列和一行,则会减少23 人,那么,该方阵应由( )名员工组成。A.169 B.144 C.196 D.225

考题 对称矩阵是一个n阶方阵,其元素满足:aij==aji (0≤i,j≤n-1)。

考题 任意的一个n阶方阵一定可以相似一个对角阵。

考题 【简答题】下面是一个5*5的螺旋方阵。按照逆时针方向旋进n*n螺旋方阵,编程输出。 1 16 15 14 13 2 17 24 23 12 3 18 25 22 11 4 19 20 21 10 5 6 7 8 9

考题 n 阶方阵 A 与对角阵相似的充要条件是A.方阵 A 有 n 个互不相同的特征值B.方阵 A 有 n 个线性无关的特征向量C.方阵 A 是对称矩阵D.方阵 A 的特征向量两两正交E.方阵 A 是实矩阵F.方阵 A 的特征值是实数