Java语言程序设计编程题programming exercises答案第7章.docx
《Java语言程序设计编程题programming exercises答案第7章.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计编程题programming exercises答案第7章.docx(51页珍藏版)》请在冰豆网上搜索。
Java语言程序设计编程题programmingexercises答案第7章
7.1importjava.util.Scanner;
publicclassExercise01{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
System.out.println("Entera4-by-4matrixrowbyrow:
");
int[][]matrix=newint[4][4];
for(inti=0;i<4;i++){
for(intj=0;j<4;j++){
matrix[i][j]=input.nextInt();
}
}
System.out.println("Sumofthematrixis"+sumMatrix(matrix));
}
publicstaticintsumMatrix(int[][]m){
intsum=0;
for(inti=0;ifor(intj=0;jsum+=m[i][j];
}
}
returnsum;
}
}
7.2importjava.util.Scanner;
publicclassExercise02{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
System.out.println("Entera4-by-4matrixrowbyrow:
");
int[][]matrix=newint[4][4];
for(inti=0;ifor(intj=0;jmatrix[i][j]=input.nextInt();
}
}
System.out.println("Sumoftheelementsinthemajordiagonalis"+sumMajorDiagonal(matrix));
}
publicstaticintsumMajorDiagonal(int[][]m){
intsum=0;
for(inti=0,j=0;isum+=m[i][j];
returnsum;
}
}
7.3publicclassExercise03{
publicstaticvoidmain(String[]args){
//Student'sanswerstothequestions
char[][]answers={
{'A','B','A','C','C','D','E','E','A','D'},
{'D','B','A','B','C','A','E','E','A','D'},
{'E','D','D','A','C','B','E','E','A','D'},
{'C','B','A','E','D','C','E','E','A','D'},
{'A','B','D','C','C','D','E','E','A','D'},
{'B','B','E','C','C','D','E','E','A','D'},
{'B','B','A','C','C','D','E','E','A','D'},
{'E','B','E','C','C','D','E','E','A','D'}
};
//Keytothequestions
char[]keys={'D','B','D','C','C','D','A','E','A','D'};
int[][]countOfCorrect=newint[answers.length][2];
//Grandallanswers
for(inti=0;i//Gradeonestudent
intcorrectCount=0;
for(intj=0;jif(answers[i][j]==keys[j])
correctCount++;
}
countOfCorrect[i][1]=correctCount;
countOfCorrect[i][0]=i;
}
for(inti=0;iintcurrentStudent=countOfCorrect[i][0];
intmin=countOfCorrect[i][1];
intminIndex=i;
for(intj=i+1;jif(countOfCorrect[j][1]currentStudent=countOfCorrect[j][0];
min=countOfCorrect[j][1];
minIndex=j;
}
}
if(minIndex!
=i){
countOfCorrect[minIndex][0]=countOfCorrect[i][0];
countOfCorrect[minIndex][1]=countOfCorrect[i][1];
countOfCorrect[i][0]=currentStudent;
countOfCorrect[i][1]=min;
}
}
for(intj=0;jSystem.out.println("Student"+countOfCorrect[j][0]+"'scorrectcountis"+countOfCorrect[j][1]);
}
}
7.4publicclassExercise04{
publicstaticvoidmain(String[]args){
int[][]workHours={
{2,4,3,4,5,8,8},
{7,3,4,3,3,4,4},
{9,3,4,7,3,4,1},
{3,5,3,4,6,3,8},
{3,4,4,6,3,4,4},
{3,7,4,8,3,8,4},
{6,3,5,9,2,7,9}
};
int[][]totalWorkHours=newint[workHours.length][2];
for(inti=0;iintsum=0;
for(intj=0;jsum+=workHours[i][j];
}
totalWorkHours[i][0]=i;
totalWorkHours[i][1]=sum;
}
int[][]sortTotalWorkHours=sortArray(totalWorkHours);
for(intj=0;jSystem.out.println("Employee"+sortTotalWorkHours[j][0]+"'stotalworkhoursis"+sortTotalWorkHours[j][1]);
}
publicstaticint[][]sortArray(int[][]array){
for(inti=0;iintcurrentEmployee=array[i][0];
intcurrentMaxWorkHours=array[i][1];
intcurrentMaxIndex=i;
for(intj=i+1;jif(array[j][1]>currentMaxWorkHours){
currentEmployee=array[j][0];
currentMaxWorkHours=array[j][1];
currentMaxIndex=j;
}
}
if(currentMaxIndex!
=i){
array[currentMaxIndex][0]=array[i][0];
array[currentMaxIndex][1]=array[i][1];
array[i][0]=currentEmployee;
array[i][1]=currentMaxWorkHours;
}
}
returnarray;
}
}
7.5importjava.util.Scanner;
publicclassExercise05{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
System.out.println("Entera4-by-4matrix1:
");
int[][]matrix1=newint[4][4];
int[][]matrix2=newint[4][4];
for(inti=0;ifor(intj=0;jmatrix1[i][j]=input.nextInt();
}
System.out.println("Entera4-by-4matrix2:
");
for(inti=0;ifor(intj=0;jmatrix2[i][j]=input.nextInt();
}
int[][]sumOfMatrix=addMatrix(matrix1,matrix2);
printMatrix(matrix1,matrix2,sumOfMatrix);
}
publicstaticint[][]addMatrix(int[][]a,int[][]b){
int[][]sum=newint[a.length][a[0].length];
for(inti=0;ifor(intj=0;jsum[i][j]=a[i][j]+b[i][j];
}
returnsum;
}
publicstaticvoidprintMatrix(int[][]matrix1,int[][]matrix2,int[][]sumOfMatrix){
for(inti=0;ifor(intj=0;jSystem.out.print((matrix1[i][j]<10?
"":
"")+matrix1[i][j]+"");
}
if(i!
=Math.ceil(matrix1.length/2))
System.out.print("");
else
System.out.print("+");
for(intj=0;jSystem.out.print((matrix2[i][j]<10?
"":
"")+matrix2[i][j]+"");
}
if(i!
=Math.ceil(matrix1.length/2))
System.out.print("");
else
System.out.print("=");
for(intj=0;jSystem.out.print((sumOfMatrix[i][j]<10?
"":
"")+sumOfMatrix[i][j]+"");
}
System.out.println();
}
}
}
7.6importjava.util.Scanner;
publicclassExercise06{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
double[][]matrix1=newdouble[3][3];
double[][]matrix2=newdouble[3][3];
System.out.println("Entera3-by-3matrix1:
");
for(inti=0;ifor(intj=0;jmatrix1[i][j]=input.nextDouble();
}
System.out.println("Entera3-by-3matrix2:
");
for(inti=0;ifor(intj=0;jmatrix2[i][j]=input.nextDouble();
}
double[][]multiplyMatrix=multiplyMatrix(matrix1,matrix2);
for(inti=0;ifor(intj=0;jSystem.out.print(matrix1[i][j]+"");
}
if(i!
=Math.ceil(matrix1.length/2))
System.out.print("");
else
System.out.print("*");
for(intj=0;jSystem.out.print(matrix2[i][j]+"");
}
if(i!
=Math.ceil(matrix1.length/2))
System.out.print("");
else
System.out.print("=");
for(intj=0;jSystem.out.print((int)(multiplyMatrix[i][j]*10)/10.0+"");
}
System.out.println();
}
}
publicstaticdouble[][]multiplyMatrix(double[][]a,double[][]b){
double[][]multiply=newdouble[a.length][a[0].length];
for(inti=0;ifor(intj=0;jfor(intm=0;mmultiply[i][j]+=a[i][m]*b[m][j];
}
}
returnmultiply;
}
}
7.7publicclassExercise07{
publicstaticvoidmain(String[]args){
double[][]points={{-1,0,3},{-1,-1,-1},{4,1,1},{2,0.5,9},{3.5,2,-1},{3,1.5,3},{-1.5,4,2},{5.5,4,-0.5}};
//p1andp2aretheindicesinthepointsarray
intp1=0,p2=1;//Initialtwopoints
doubleshortestDistance=distance(points[p1][0],points[p1][1],points[p1][2],
points[p2][0],points[p2][1],points[p2][2]);//InitializeshortestDistance
//Computedistanceforeverytwopoints
for(inti=0;ifor(intj=i+1;jdoubledistance=distance(points[i][0],points[i][1],points[i][2],
points[j][0],points[j][1],points[j][2]);//Finddistance
if(distancep1=i;//Updatep1
p2=j;//Updatep2
shortestDistance=distance;//UpdateshortestDistance
}
}
}
//Displayresult
System.out.println("Theclosesttwopointsare"+"("+points[p1][0]+","+points[p1][1]+points[p1][2]+")and("+
points[p2][0]+","+points[p2][1]+points[p2][2]+")");
}
publicstaticdoubledistance(doublex1,doubley1,doublez1,doublex2,doubley2,doublez2){
returnMath.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1));
}
}
7.8importjava.util.Scanner;
publicclassExercise08{
publicstaticvoidmain(String[]args){
double[][]points={{-1,3},{-1,-1},{1,1},{0,0.5},
{2,0.5},{2,-1},{3,3},{4,2},{4,-0.5}};
//p1andp2aretheindicesinthepointsarray
intp1=0,p2=1;//Initialtwopoints
doubleshortestDistance=distance(points[p1][0],points[p1][1],
points[p2][0],points[p2][1]);//InitializeshortestDistance
int[][]indices=newint[points.length][2];
intk=0;
ind