Java语言程序设计(第3版)沈泽刚主编第5章课后习题答案_第1页
Java语言程序设计(第3版)沈泽刚主编第5章课后习题答案_第2页
已阅读5页,还剩5页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语⾔程序设计(第3版)沈泽刚主编第5章课后习题答案Java语⾔程序设计(第3版)沈泽刚主编第5章课后习题答案importScannerimportScanner;/***5.15个整数,存到⼀个数组,计算所有元素的最⼤值,最⼩值和平均值。*/publicclassIntArray{publicstaticvoidmain(String[]args){System.out.print("键盘输⼊5个整数:");Scannerinput=newScanner(System.in);int[]num=newint[5];intsum=0;intmax=Integer.MIN_VALUE;intmin=Integer.MAX_VALUE;for(inti=0;i<num.length;i++){num[i]=input.nextInt();}for(inti=0;i<num.length;i++){if(max<=num[i]){max=num[i];}if(min>=num[i]){min=num[i];}sum+=num[i];}System.out.println("max.out.println("minSystem.out.println("(1.0*sum/num.length}}1publicclassRandomTest{publicstaticvoidmain(String[]args){t3=wt[6];/int[]num4=newint[6];for(intk=0;k<100;k++){intr=(int)(Math.random()*6)+1;switch(r){case1:num3[0]++;break;case2:num3[1]++;break;case3:num3[2]++;break;case4:num3[3]++;break;case5:num3[4]++;break;case6:num3[5]++;break;}}for(intm=0;m<1000;m++){intr=(int)(Math.random()*6)+1;switch(r){case1:num4[0]++;break;case2:num4[1]++;break;case3:num4[2]++;break;case4:num4[3]++;break;case5:num4[4]++;break;case6:num4[5]++;break;}}System.out.print("100个整数中,1~6出现的次数分别为:");for(intk=0;k<num3.length;k++){System.out.print(num3[k]+"");}System.out.println();System.out.print("1000个整数中,1~6出现的次数分别为:");for(intk=0;k<num3.length;k++){System.out.print(num4[k]+"");}}}编写⼀个⽅法,求⼀个double型数组的最⼩值。importimportScanner;/***5.3double型数组的最⼩值。*/publicclassArrayDemo{publicstaticDoublemin(double[]array){doublemin=Double.MAX_VALUE;for(inti=0;i<array.length;i++){if(min>=array[i]){min=array[i];}}returnmin;}publicstaticvoidmain(String[]args){double[]array=newdouble[5];ScannerinputnewScanner(System.in.out.print("请输⼊5个double型的数字:"i<array.lengthi++){array[i]=input.nextDouble();}System.out.println("min(array}}定义⼀个有10个元素的数组,前5个元素与后5个元素交换,第1个与第10个交换,依次类推。publicclasspublicclassArrayChange{publicstaticvoidmain(String[]args){int[]array={1,2,3,4,5,6,7,8,9,10};for(intarr:array){System.out.print(arr+"");}System.out.println();for(inti=0;i<array.length/2;i++){inttemp=array[i];array[i]=array[array.length-1-i];array[array.length-1-i]=temp;}for(intarr1:array){System.out.print(arr1+"");}}}定义⼀个含有8个元素的数组,选择排序进⾏升序排序。publicclasspublicclassArraySort{publicstaticvoidmain(String[]args){int[]array={2,1,4,3,5,6,8,7};for(inti=0;i<array.length;i++){intkey=array[i];for(intj=i+1;j<array.length;j++){if(key>array[j]){inttemp=key;key=array[j];array[j]=temp;}}array[i]=key;}for(intarr:array){System.out.print(arr+"");}}}编程打印斐波那契数列的前20个数字。publicclasspublicclassFibonacci{publicstaticvoidmain(String[]args){int[]f=newint[20];f[0]=1;f[1]=1;for(inti=2;i<f.length;i++){f[i]=f[i-1]+f[i-2];}for(intf1:f){System.out.print(f1+"");}}}importArraysimportArrays;/***5.7编写⼀个⽅法,计算两个数组之和。*/publicclassSumArray{publicstaticint[]sumArray(int[]a,int[]b){intlength=Math.max(a.length,b.length);a=Arrays.copyOf(a,length);b=Arrays.copyOf(b,length);int[]r=newint[length];for(inti=0;i<length;i++){r[i]=a[i]+b[i];}returnr;}publicstaticvoidmain(String[]args){int[]a={1,2,4};int[]b={2,4,6,8};int[]c=sumArray(a,b);for(intd:c){System.out.print(d+"");}}}importArraysimportArrays;/***5.8编写⽅法,合并两个数组,并按升序返回合并后的数组。*/publicclassArrayMerge{publicstaticint[]arrayMerge(int[]a,int[]b){int[]array=newint[a.length+b.length];for(inti=0;i<a.length;i++){array[i]=a[i];}for(intj=array.length-a.length-3,k=0;j<array.length;j++,k++){array[j]=b[k];}Arrays.sort(array);returnarray;}publicstaticvoidmain(String[]args){int[]a={16,13,15,18};int[]b={9,13,15,16,29,36,100};int[]array=arrayMerge(a,b);for(intarr:array){System.out.print(arr+"");}}}importScannerimportScanner;/***5.9编写程序,使⽤⽅法求解⼀元⼆次⽅程根的个数。*/publicclassSolveQuadratic{publicstaticintsolveQuadratic(double[]eqn,double[]roots){doublediscriminant=(eqn[1]*eqn[1])-(4*eqn[0]*eqn[2]);if(discriminant>0){roots[0]=((-eqn[1])+Math.sqrt(discriminant))/(2*eqn[0]);roots[1]=((-eqn[1])-Math.sqrt(discriminant))/(2*eqn[0]);return2;}elseif(discriminant==0){roots[0]=(-eqn[1])/(2*eqn[0]);roots[1]=(-eqn[1])/(2*eqn[0]);return1;}else{return0;}}publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.print("请输⼊⼀元⼆次⽅程的系数:a,b,c:");double[]roots=newdouble[2];double[]eqn=newdouble[3];for(inti=0;i<eqn.length;i++){eqn[i]=input.nextDouble();}System.out.println("⼀元⼆次⽅程有"+solveQuadratic(eqn,roots)+"个根");}}编写程序,筛选出2~100的所有素数。publicclasspublicclassPrimeNumber{publicstaticbooleanisPrime(intn){for(inti=2;i<n;i++){if(n%i==0){returnfalse;}}returntrue;}publicstaticvoidmain(String[]args){for(inti=2;i<=100;i++){if(isPrime(i)){System.out.print(i+"");}}}}编写程序,List1和list2数组长度相同,判断数组list1和list2是否完全相同publicclasspublicclassequals{publicstaticbooleanequals(int[]list1,int[]list2){for(inti=0;i<list1.length;i++){if(list1[i]!=list2[i]){returnfalse;}}returntrue;}publicstaticvoidmain(String[]args){int[]list1={1,2,3,4,5};int[]list2={1,2,3,4,5};int[]list3={1,2,4,3,5};System.out.println(equals(list1,list2));System.out.println(equals(list1,list3));}}编写求解约瑟夫问题。有12个⼈排成⼀圈,从1号开始报数,数到5的⼈就离开,然后继续报数,试问最后剩下的⼀个⼈是谁?publicclasspublicclassJosephus{publicstaticvoidmain(String[]args){int[]array=newint[12];for(inti=0;i<array.length;i++){array[i]=i+1;}intn=0;intcount=0;while(true){for(inti=0;i<array.length;i++){if(array[i]!=0){n++;if(n%5==0){System.out.println(array[i]+"离开!");array[i]=0;count++;}}}if(count==11){break;}}for(intj=0;j<array.length;j++){if(array[j]!=0){System.out.println(array[j]);}}}}publicclasspublicclassTwentyFour{publicstaticvoidmain(String[]args){int[]cards=newint[52];for(inti=0;i<cards.length;i++){cards[i]=i;}intsum=0,count=0while(sum!=24){for(inti=0;i<4;i++){intj=(int)(Math.random()*52);inttemp=cards[i];cards[i]=cards[j]cards[j]=temp;}sum=0;for(inti=0;i<4;i++){sum+=cards[i];}count++;}System.out.println(sum);System.out.println("count}}importimportimportScanner;Stack;/***5.14编写程序,提⽰⽤户从键盘输⼊⼀个整数,然后使⽤栈以降序输出该数的最⼩因⼦。*/publicclassUseOfStack{publicstaticvoidmain(String[]args){ScannerinputnewScanner(System.instacknew.out.print("intn=input.nextInt();intvalue=n;for(inti=2;i<n;i++){if(value%i==0){stack.push(i);value=value/ii--;}}while(!stack.isEmpty()){System.out.println(stack.pop());}}}计算两个矩阵A,B的和,差,转置。publicclassMatrixDemo{publicstaticvoidmain(String[]args){int[][]A={{1,3,5},{-3,6,0},{13,-5,7},{-2,19,25}};int[][]B={{0,-1,-2},{7,-1,6},{-6,13,2},{12,-8,-13}};int[][]sum=newint[4][3];int[][]sub=newint[4][3];int[][]tran=newint[3][4];for(inti=0;i<A.length;i++){for(intj=0;j<A[0].length;j++){sum[i][j]=A[i][j]+B[i][j];sub[i][j]=A[i][j]-B[i][j];}}for(inti=0;i<A.length;i++){for(intj=0;j<A[0].length;j++){System.out.print(sum[i][j]+"");}System.out.println();}for(inti=0;i<A.length;i++){for(intj=0;j<A[0].length;j++){System.out.print(sub[i][j]+"");}System.out.println();}for(inti=0;i<tran.length;i++){for(intj=0;j<tran[0]

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论