數(shù)組習(xí)題參考答案2011_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)14 數(shù)組的應(yīng)用實(shí)驗(yàn)要求:1.編寫一個(gè)程序,通過屏幕提示輸入 二維數(shù)組的行列個(gè)數(shù)(假設(shè)是方陣), 然后提示依次輸入各個(gè)整數(shù) 元素(一個(gè)元素一行), 然后編寫三個(gè)方法分別求數(shù)組的每行最大值、 每列最小值以及輸出數(shù)組主對角線上的元素。,P164,import java.util.Scanner;public class FangZhen { //通過屏幕提示輸

2、入二維數(shù)組的行列個(gè)數(shù)和元素 int[][] readArray() {Scanner reader = new Scanner(System.in);//輸入二維數(shù)組的行列個(gè)數(shù)(假設(shè)是方陣)System.out.println("請輸入二維數(shù)組的行列個(gè)數(shù)(假設(shè)是方陣):");int n = reader.nextInt();int[][] ary = new int[n][n];/

3、/依次輸入各個(gè)整數(shù)元素(一個(gè)元素一行)System.out.println("請依次輸入各個(gè)整數(shù)元素(一個(gè)元素一行):"); for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {ary[i][j] = reader.nextInt();}}return ary; },//輸出每行最大值void

4、printLineMax(int[][] a) {System.out.println("每行最大值:");for (int i = 0; i max) {max = a[i][j];}}System.out.println(max + " ");}},//輸出每列最小值void printColumnMin(int[][] a) {System

5、.out.println("每列最小值:");for (int i = 0; i < a.length; i++) {int min = a[0][i];for (int j = 0; j < a[i].length; j++) {if (a[j][i] < min) {min = a[j][i];}}System.out.println(min

6、 + " ");}},//輸出每行最大值void printLineMax(int[][] a) {System.out.println("每行最大值:");for (int i = 0; i max) {max = a[i][j];}}System.out.println(max + " ");}}//輸出每列最小值v

7、oid printColumnMin(int[][] a) {System.out.println("每列最小值:");for (int i = 0; i < a.length; i++) {int min = a[0][i];for (int j = 0; j < a[i].length; j++) {if (a[j][i] < min) {min = a[j

8、][i];}}System.out.println(min + " ");}},//輸出數(shù)組主對角線上的元素void printMainDiagonal(int[][] a) {System.out.println("主對角線上的元素:");for (int i = 0; i < a.length; i++) {for (int j = 0;

9、 j < a[i].length; j++) {if (i == j) {System.out.print(a[i][j] + " ");}}}}public static void main(String[] args) {FangZhen f = new FangZhen();int[][] a = f.readArray();f.p

10、rintLineMax(a);f.printColumnMin(a);f.printMainDiagonal(a);}},實(shí)驗(yàn)14 數(shù)組的應(yīng)用實(shí)驗(yàn)要求:2.使用數(shù)組的知識編程實(shí)現(xiàn)Fibonacci數(shù)列。,P164,Fibonacci數(shù)列: 1,1,2,3,5,8,13,21……,public class Fibonacci {int[] getFibonacci(int n) {

11、int[] a = new int[n];//設(shè)置前兩個(gè)元素值a[0] = 1;a[1] = 1;//求余下元素值for (int i = 2; i < n; i++) {a[i] = a[i - 1] + a[i - 2];}return a;}public static void main(String[] args) {Fibonacci fbn = ne

12、w Fibonacci();//根據(jù)需要的數(shù)列項(xiàng)目得到Fibonacci數(shù)列int[] f = fbn.getFibonacci(10);//輸出數(shù)列中所有元素for (int i = 0; i < f.length; i++) {System.out.print(f[i] + " ");}}},Fibonacci數(shù)列: 1,1,2,3,5,8,13,

13、21……,實(shí)驗(yàn)14 數(shù)組的應(yīng)用實(shí)驗(yàn)要求:3.編程采用選擇排序法實(shí)現(xiàn)對 一維數(shù)組的元素由小到大排序并輸出。,P164,選擇排序法: 先選擇數(shù)組中最小數(shù)與第一個(gè)元素交換, 再選擇次小數(shù)與第二個(gè)元素交換, 一共進(jìn)行數(shù)組長度-1次選擇。,3 選擇排序簡單選擇排序排序過程首先通過n-1次關(guān)鍵字比較,從n個(gè)記錄中找出關(guān)鍵字最小的記錄,將它與第一個(gè)記錄交換。再通過n-

14、2次比較,從剩余的n-1個(gè)記錄中找出關(guān)鍵字次小的記錄,將它與第二個(gè)記錄交換。重復(fù)上述操作,共進(jìn)行n-1趟排序后,排序結(jié)束。,簡單選擇排序,例,,初始: [ 49 38 65 97 76 13 27 ],i=1,13,49,一趟: 13 [38 65 97 76 49 27 ],i=2,27,38,六趟: 13 2

15、7 38 49 65 76 [97 ],排序結(jié)束: 13 27 38 49 65 76 97,class SortArray {static int[] sort(int[] ary) {int i, j, k, temp;int n = ary.length;//一共進(jìn)行長度-1次選擇for (i = 0; i

16、 < n - 1; i++) {k = i;//選擇本次最小元素值的下標(biāo)for (j = i + 1; j < n; j++) {if (ary[j] < ary[k]) {k = j;}}//存放本次最小元素值if (k != i) {temp = ary[k];ary[k] = ary[i];ary[i]

17、= temp;}}//返回排序后的數(shù)組return ary;},/* 編程采用選擇排序法實(shí)現(xiàn)對一維數(shù)組的元素由小到大 排序并輸出。(先選擇數(shù)組中最小數(shù)與第一個(gè)元素交換, 再選擇次小數(shù)與第二個(gè)元素交換, 一共進(jìn)行長度-1次選擇。) */public static void main(String[] args) {//定義待排序的數(shù)組int[] ary = { 12, 8,

18、6, 40, 9, 10 };//進(jìn)行選擇排序ary = sort(ary);//輸出排序后的數(shù)組元素for (int i = 0; i < ary.length; i++) {System.out.print(ary[i] + " ");}}},純上機(jī)實(shí)踐#1. 按要求編寫Java應(yīng)用程序。 編寫一個(gè)名為Test的主類,類中只有一個(gè)主方法;

19、 在主方法中定義一個(gè)大小為50的一維整型數(shù)組, 數(shù)組名為x,數(shù)組中存放著{1,3,5,…,99}, 輸出這個(gè)數(shù)組中的所有元素,每輸出十個(gè)換一行;,(三)二維數(shù)組,1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79

20、81 83 85 87 89 91 93 95 97 99,for (i=0; i<50; i++) { //i表示數(shù)組下標(biāo) x[i] = 2*i + 1; //為元素賦值 //在輸出下標(biāo)分別為10、20、30、40的元素之前換行。 if (i %10 == 0) { System.out.println(); } System.out.print (

21、x[i] + “ ” ); //輸出元素},解法一,int i, cnt = 0; //cnt用來統(tǒng)計(jì)所屬出元素的個(gè)數(shù)for (i = 1; i < 100; i = i + 2) { //i表示數(shù)組元素System.out.print (i + " "); //輸出元素cnt++; //累計(jì)個(gè)數(shù)if (cnt % 10 == 0) { //夠10個(gè)就換行Sy

22、stem.out.println ();}},解法二,純上機(jī)實(shí)踐#2. 按要求編寫Java應(yīng)用程序。 在主方法中定義一個(gè)大小為10*10的二維字符型數(shù)組y, 正反對角線上存的是‘*’,其余位置存的是‘#’; 輸出這個(gè)數(shù)組中的所有元素。,(三)二維數(shù)組,純上機(jī)實(shí)踐#3. 五行楊輝三角形如下所示,請編寫應(yīng)用程序, 輸出20行楊輝三角形。 提示:三角形腰上的數(shù)為1,(縱

23、軸為i, 橫軸為j)。 其他位置的數(shù)為其上一行相鄰兩個(gè)數(shù)之和 a[i][j]=a[i-1][j-1]+a[i-1][j]。11 11 2 11 3 3 11 4 6 4 1 1 5 10 10 5 1,(三)二維數(shù)組,精品課件!,精品課件!,輸出20行楊輝三角形class ArrayYanghui {pu

24、blic static void main(String[] args){int i,j;int ln = 20; //設(shè)置顯示行數(shù)int b[][] =new int[ln][];//對所有元素賦值 for (i=0;i<b.length;i++){b[i]=new int[i+1];b[i][0]=1;b[i][i]=1;for (j=1;j<i;j

25、++) b[i][j]=b[i-1][j-1]+b[i-1][j];}//輸出數(shù)組中的元素for (i=0;i<b.length;i++){for (j=0;j<b[i].length;j++) { System.out.print(b[i][j]+" "); }System.out.println();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論