Java小练习及答案Word文档格式.docx

上传人:b****4 文档编号:16725195 上传时间:2022-11-25 格式:DOCX 页数:26 大小:23.76KB
下载 相关 举报
Java小练习及答案Word文档格式.docx_第1页
第1页 / 共26页
Java小练习及答案Word文档格式.docx_第2页
第2页 / 共26页
Java小练习及答案Word文档格式.docx_第3页
第3页 / 共26页
Java小练习及答案Word文档格式.docx_第4页
第4页 / 共26页
Java小练习及答案Word文档格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

Java小练习及答案Word文档格式.docx

《Java小练习及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java小练习及答案Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。

Java小练习及答案Word文档格式.docx

importjava.util.Scanner;

publicclassFiveChess{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

//提示用户

System.out.println("

请输入棋盘的大小:

"

);

Scannerin=newScanner(System.in);

intN=in.nextInt();

//创建和初始化棋盘

char[][]board=newchar[N][N];

for(inti=0;

i<

board.length;

i++){

for(intj=0;

j<

j++){

board[i][j]='

*'

;

}

}

//输出棋盘

printBoard(board);

//使用boolean类型的变量表示黑方或者白方:

true:

表示黑方false:

表示白方

booleanisBlack=true;

//游戏开始

target:

while(true){

//提示某方下棋

System.out.println("

请"

+(isBlack?

'

黑'

:

白'

)+"

方下子:

//控制台输入下棋的坐标位置

Stringinput=in.next();

//处理退出问题

if("

EXIT"

.equalsIgnoreCase(input)){

System.out.println("

GameOver!

break;

//判断输入的下标的位置是否正确,是否符合要求

for(intindex=0;

index<

input.length();

index++){

if(input.length()<

=1||!

Character.isLetter(input.charAt(index))){

System.out.println("

输入有误,请重新输入!

continuetarget;

}

//判断输入的下标是否越界

if(input.charAt(0)>

N+'

a'

||input.charAt

(1)>

){

continue;

//計算和输出下棋的坐标位置

intx=input.charAt(0)-'

inty=input.charAt

(1)-'

//System.out.println("

坐标:

+x+"

"

+y);

//判断输入的下标位置上是否已经有棋子

if(board[x][y]=='

@'

||board[x][y]=='

O'

){//该位置是否已经有棋子了

该位置已经有棋子,请重新指定坐标!

//下棋

board[x][y]=isBlack?

//输出棋盘

printBoard(board);

//判断输赢情况

if(isWin(board,isBlack,x,y)){

System.out.println((isBlack?

"

黑"

白"

方获胜!

//黑白方交换

isBlack=!

isBlack;

}

privatestaticvoidprintBoard(char[][]board){

//输出星形的内容

i++){//输出每一行的内容

System.out.print((char)('

+i)+"

\t"

//输出行坐标(左边的字母)

j++){//输出该行的内容

System.out.print(board[i][j]+"

System.out.println();

//输出换行符

//输出第最后一行的内容

System.out.print("

//输出第一行开头的空格

i++){//输出第一行的所有字母

System.out.println();

*判断胜负

*@paramboard表示棋盘

*@paramisBlack表示刚下棋的一方

*@paramx表示横坐标

*@paramy表示纵坐标

*@return返回代表刚下棋的一方是否获胜

privatestaticbooleanisWin(char[][]board,booleanisBlack,intx,inty){

//代表和下棋方对应的棋子

charchess=isBlack?

returnisShuipingWin(board,chess,x,y)

||isChuizhiWin(board,chess,x,y)

||isZuoXieWin(board,chess,x,y)

||isYouXieWin(board,chess,x,y);

//判断水平方向上的胜负情况

privatestaticbooleanisShuipingWin(char[][]board,charchess,intx,inty){

//1,循环找到左边界(不能直接判断到边界,因为可能最后一次循环过来会出现异常情况)

while(y>

0&

&

board[x][y]==chess){

y--;

//System.out.println("

水平方向处理"

//2,判断边界情况时,最边界的棋子为何种颜色

intcount=0;

if(board[x][y]==chess){

count=1;

//3,向右循环统计有多少个连续的同颜色棋子

y++;

while(y<

board[0].length&

count++;

if(count==5){

returntrue;

y++;

returnfalse;

//判断垂直方向上的胜负情况

privatestaticbooleanisChuizhiWin(char[][]board,charchess,intx,inty){

//1,循环找到上边界(白子的边界)

while(x>

x--;

垂直方向处理"

//2,判断边界情况时,最边界的棋子为何种颜色

//3,向下循环统计有多少个连续的同颜色棋子

x++;

while(x<

board.length&

x++;

//判断左斜方向上的胜负情况

privatestaticbooleanisZuoXieWin(char[][]board,charchess,intx,inty){

//1,循环找到左上边界

//情况:

如果第一个就下最左上角的位置上,该循环不被执行。

x>

左斜方向处理"

//3,向右下循环统计有多少个连续的同颜色棋子

y<

//判断右斜方向上的胜负情况

publicstaticbooleanisYouXieWin(char[][]board,charchess,intx,inty){

//1,循环找到右上边界

board[x][y]==chess){

右斜方向处理"

/**

*2,判断边界情况时,最边界的棋子为何种颜色

*判断条件(y<

board[0].length)的特别解释:

*在上面的while循环中最后一个次循环结束的时候y值可能已经等于board[0].length的长度了。

*/

if(y<

//3,向左下循环统计有多少个连续的同颜色棋子

y--;

y>

=0&

}

答案2:

作业提交时间及方法

作业题目

★★★★

1、从键盘输入十个整数,升序输出;

2、用二维字符数组保存一首唐诗(五言或七言),每一行代表一句,要求将这首唐诗按照古文的方式输出出来

(从右至左,竖行排列)。

3、九宫格;

4、用数组实现约瑟夫出圈问题。

n个人排成一圈,从第一个人开始报数,从1开始报,报到m的人出圈,剩下的

人继续开始从1报数,直到所有的人都出圈为止。

对于给定的n,m,求出所有人的出圈顺序。

5、将所有学生的课程成绩保留在一个二维数组中,每一行代表一个学生的成绩,每一列代表一门课程的成绩;

将每门课程的名称保留在一个一维数组中(课程的下标序号与二维数组的列号匹配);

将每个学生的姓名保留在一个一维数组中(学生的下标序号与二维数组的行号匹配);

要求编写程序实现成绩的查询,要求程序运行时从命令行输入统计命令及参数,程序则输出结果,

例如:

AVGCOUcorejava:

统计课程corejava的平均分。

AVGSTU张三:

统计学生张三的平均分。

SORTsum:

列出每个学生所有课程总分的排名。

SORTcorejava:

列出corejava课程的成绩的排名。

GET张三sum:

统计学生张三的总分。

GET张三corejava:

统计张三的corejava课程的成绩。

publicclassSort{

intlength=10;

int[]arr=newint[length];

请输入10个整数:

length;

arr[i]=Integer.parseInt(in.next());

//升序排序

arr.length;

i++)

j++)

if(arr[i]<

arr[j]){

inttemp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

System.out.print(arr[i]+"

9876543210

0123456789

publicclassgusi01{

char[][]a={

{'

朝'

'

辞'

帝'

彩'

云'

间'

},

千'

里'

江'

陵'

一'

日'

还'

两'

岸'

猿'

声'

啼'

不'

住'

轻'

舟'

已'

过'

万'

重'

山'

}};

//方法一:

for(inti=0;

i<

a[0].length;

i++){//控制输出结果的行

for(intj=0;

j<

a.length;

j++){//控制输出结果的列

System.out.print(a[3-j][i]+"

//而打印的时候,打印的确是原有古诗二维数组的内容即原来的位置。

System.out.print("

\n"

//方法二:

for(inti=0;

i++){

for(intj=a.length-1;

j>

=0;

j--)

System.out.print(a[j][i]+"

System.out.println();

输出:

轻两千朝

舟岸里辞

已猿江白

过声陵帝

万啼一彩

重不日云

山住还间

答案3:

publicclassTest{

请输入一个奇数:

//为数组赋初始值

intdata[][]=newint[N][N];

N;

data[i][j]=0;

printArray(data);

//计算第一个元素存放的位置

introw=0;

//声明行变量

intcol=N/2;

//声明列变量

for(inti=1;

=N*N;

data["

+row+"

]["

+col+"

]="

+i);

data[row][col]=i;

//始终保证是右上角的位置;

row--;

col++;

//行越界,列不越界;

if(row<

col<

N){

row=N-1;

//col不变;

//列越界,行不越界

if(row>

col==N){

col=0;

//row不变;

}

//最右上角||右上角有值;

if((row<

col>

=N)||(data[row][col]!

=0)){

row+=2;

col--;

privatestaticvoidprintArray(int[][]data){

data.length;

System.out.print((data[i][j]<

10?

0"

+data[i][j]:

data[i][j])+"

3

080106

030507

040902

5

1724010815

2305071416

0406132022

1012192103

1118250209

答案4:

publicclassOut{

int[]arr=newint[]{1,2,3,4,5,6,7,8};

out(arr,8,3,0);

/**

*@paramarray:

表示一个存放数据的一维数组;

*@paramlength:

数组中元素的个数(共有多少人围成的圈);

*@paramtarget:

目标数(从1开始报,报到m的人出圈)

*@paramstart:

从数组中哪个元素开始的坐标(第一次时指定从哪一个人开始报数);

*注意:

数组起始下标从0开始。

privatestaticvoidout(intarray[],intlength,inttarget,intstart){

if(length==0)

return;

intindex=(s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1