Presentation is loading. Please wait.

Presentation is loading. Please wait.

2D-Array 二維陣列 1 *****0 ***** 1 ***** 2 ***** 3 ***** 4 ***** 5 ***** 6 ***** 7 ***** 8 ***** 0 1 * 2 ** 3 *** 4 **** 5 ***** 6 ****** 7 ******* 8 ********

Similar presentations


Presentation on theme: "2D-Array 二維陣列 1 *****0 ***** 1 ***** 2 ***** 3 ***** 4 ***** 5 ***** 6 ***** 7 ***** 8 ***** 0 1 * 2 ** 3 *** 4 **** 5 ***** 6 ****** 7 ******* 8 ********"— Presentation transcript:

1 2D-Array 二維陣列 1 *****0 ***** 1 ***** 2 ***** 3 ***** 4 ***** 5 ***** 6 ***** 7 ***** 8 ***** 0 1 * 2 ** 3 *** 4 **** 5 ***** 6 ****** 7 ******* 8 ******** 1 * 2 ** 3 *** 4 **** 5 ***** 6 ****** 7 ******* 8 ******** 9 ********* 0 ********* 1 ******** 2 ******* 3 ****** 4 ***** 5 **** 6 *** 7 ** 8 * 5 * 4 *** 3 ***** 2 ******* 1 ********* 0 *********** 1 ********* 2 ******* 3 ***** 4 *** 5 * 0 * 1 *** 2 ***** 3 ******* 4 ********* 5 *********** 6 ************* 7 *************** 8 ***************** -5 * -4 ** -3 *** -2 **** -1 ***** 0 ****** 1 ***** 2 **** 3 *** 4 ** 5 *

2 2D-Array 二維陣列 2 for(i=0;i<__;i++){ for(j=__;i<__;j++) printf("* "); printf("\n"); }

3 2D-Array 二維陣列 3 int st01Subj01,st01Subj02,…st01Subj10; int st02Subj01,st02Subj02,…st02Subj10; … studSubj[0][0] = 100; 宣告大量 變數 宣告 2D-Array 二維陣列 int studSubj[40][10]; 沒有 2D-Array 二維陣列 scanf ("%i", &studSubj[0][0]); printf (" 學生 : %i 科目 :%i 成績 :%i\n", 1,1,studSubj[0][0]); 第 1 個學生 第 1 科成績 =100

4 2D-Array 二維陣列 4 int a[_][_];// 5 列 (rows)  9 欄 (columns) a[i][j]012345678 row = 0000000000 row = 1111111111 row = 2222222222 row = 3333333333 row = 4444444444 a[ ][ ] 名稱

5 2D-Array 二維陣列 5 printf("%i", a[0][0]); printf("%i", a[0][1]); printf("%i", a[0][2]);... printf("%i", a[0][8]); for(i=0;i<__;i++){ printf("\n"); } int a[5][9];// 5 列 (rows)  9 欄 (columns) a[i][j]012345678 row = 0000000000 row = 1111111111 row = 2222222222 row = 3333333333 row = 4444444444 for(j=0;j<__;j++) printf("%i",a[ ][ ]);

6 2D-Array 二維陣列 6 int A[3][4]; int B[3][4]={{5,6,7,8},{2,4,6,8},{1,3,5,7}}; int C[3][4]={5,6,7,8,2,4,6,8,1,3,5,7}; int D[3][4]={{5,6,7},{8,2,4},{6,8,1},{3,5,7}}; // 錯誤 A[0][0]=rand()%6+1;... A[2][3]=rand()%100+1; ex1:int magic3[][]... 8 1 6 3 5 7 4 9 2 ex2:int magic4[][]... 3 10 15 6 13 8 1 12 2 11 14 7 16 5 4 9 宣告 magic3 列印幻方 檢查每行每欄總和

7 2D-Array 二維陣列 7 輸入 : for(i=0;i<3;i++){ for(j=0;j<4;j++){ scanf ("%d", &a[ ][ ]); } 輸出 : for(i=0;i<3;i++){ for(j=0;j<4;j++){ printf ("%d\t", a[ ][ ]); } printf("\n"); }

8 2D-Array 二維陣列 8 student 1:506070 student 2:556677 student 3:706050 … student 40:776320 輸入分數 (40 學生,每人 3 科 ) int score … 輸出平均分數 student 1:50607060.0 student 2:55667766.0 … student 40:77632130.3 617281 rowTL[] colTL[] score[0][0]

9 2D-Array 二維陣列 9 初始化 init: for(i=0;i<__;i++){ for(j=0;j<__;j++){ num[i][j]=0; } int rowTL[__], colTL[__]; for(i=0;i<___;i++) rowTL[i]=0; for(j=0;j<___;j++) colTL[j]=0; num[i][j]j=0j=1j=2j=3rowTL[ ] i=0num[0][0]num[0][1]num[0][2]num[0][3]rowTL[0] i=1num[1][0]num[1][1]num[1][2]num[1][3]rowTL[1] i=2num[2][0]num[2][1]num[2][2]num[2][3]rowTL[2] colTL[ ]colTL[0]colTL[1]colTL[2]colTL[3]TL 行列小計 sub-totals (row,column): i j

10 2D-Array 二維陣列 10 i=0rowTL[0] = num[0][0]+num[0][1]+num[0][2]+num[0][3]; i=1rowTL[1] = num[1][0]+num[1][1]+num[1][2]+num[1][3]; i=2rowTL[2] = num[2][0]+num[2][1]+num[2][2]+num[2][3]; j=0colTL[0] = num[0][0]+num[1][0]+num[2][0]; j=1colTL[1] = num[0][1]+num[1][1]+num[2][1]; j=2colTL[2] = num[0][2]+num[1][2]+num[2][2]; j=3colTL[3] = num[0][3]+num[1][3]+num[2][3]; for(i=0;i<3;i++){ for(j=0;j<4;j++) rowTL_________________ } for(i=0;i<3;i++){ for(j=0;j<4;j++) colTL__________________ } [i][j] [i] [i][j] [j]

11 2D-Array 二維陣列 11 總和 sum: sum=0; for(i=0;i<3;i++){ for(j=0;j<4;j++) sum________________________ } 總計 count: count=0; for(i=0;i<30;i++)// 層數 0-29 for(j=0;j<6;j++)// 單位 0-5 if(B[i][j]___) count++;// 少於 4 人 for(i=0;i<30;i++)// 層數 0-29 for(j=0;j<6;j++)// 單位 0-5 FloorAvg____________________ for(i=0;i<30;i++) FloorAvg[i]/=6;

12 2D-Array 二維陣列 12 例 : freq[i][j]| 1 2 3 4 5 6rowTL[] rowMax[] ------------------------------rowMin[] 1| 4 6 3 8 5 43038 2| 6 3 7 8 5 4 3| 3 8 9 2 5 4 ------------------------------ colTL[]| colMin[]| colMax[]| 宣告 : int freq[3][6], colTL, colMin, colMax[6], rowTL, rowMin, rowMax[3];

13 2D-Array 二維陣列 13 輸入 : scanf("%d",&freq[0][0]); scanf("%d",&freq[0][1]); scanf("%d",&freq[0][2]);... scanf("%d",&freq[2][5]); 輸入 : for(i=0;i<3;i++) for(j=0;j<6;j++) scanf("%d", &freq________); 輸出 : for(i=0;i<3;i++){ for(j=0;j<6;j++) printf("%d\t", freq_______); printf("\n"); }

14 2D-Array 二維陣列 14 小計 ( 列 ): for(i=0;i<3;i++) for(j=0;j<6;j++) rowTL ____________________ 分析 : i=0,j=0rowTL[0] += freq[0][0];... i=2,j=5rowTL[2] += freq[2][5]; 小計 ( 欄 ): for(i=0;i<3;i++) for(j=0;j<6;j++) colTL ____________________ 分析 : i=0,j=0colTL[0] += freq[0][0];... i=2,j=5colTL[5] += freq[2][5];

15 2D-Array 二維陣列 15 最小值 ( 第 1 欄 ): min=freq[0,1]; for(j=1;j<3;j++) if( 最小值 ( 第 0-2 欄 ): for(j=0;j<3;j++) colMin for(i=0;i<3;i++){ for(j=0;j<6;j++) if() colMin________________

16 2D-Array 二維陣列 16 最小值 ( 第 0-5 列 ): for(i=0;i<6;i++) rowMin[i]=freq[i][0]; for(i=0;i<3;i++){ for(j=0;j<6;j++) if() rowMin_______________ 總和 : sum=0; for(i=0;i<3;i++){ for(j=0;j<6;j++) sum+=____________________

17 2D-Array 二維陣列 17 宣告 : char name[40][10]; int score[40][4], studTL[40], gradeTL[90]; float studAvg[40]; char grade[40]; 輸入 : for(i=0;i<40;i++){// 40 students printf("%s: ",name[i]); for(j=0;j<4;j++)// 4 subjects scanf("%d", &score); }

18 2D-Array 二維陣列 18 總分、平均分 :total and average for(i=0;i<40;i++) studTL[i]=0; for(i=0;i<40;i++) for(j=0;j<4;j++) studTL[__] += score[__][__]; for(i=0;i<40;i++) studAvg[__]=studTL[__]/4; 等級 : grade for(i=0;i<40;i++) if(studAvg[i]>=86) grade[__]='A'; else if(studAvg[i]>=70) grade[__]='B'; else if(studAvg[i]>=50) grade[__]='C'; else if(studAvg[i]>=30) grade[__]='D'; else else grade[__]='E';

19 2D-Array 二維陣列 19 等級統計 : grade Total for(g='A';g<='E';g++) gradeTL[g]=0; for(i=0;i<40;i++){ g=grade[__]; gradeTL[__]++; }

20 2D-Array 二維陣列 20 i=1; A[1][1] = A[0][0] + A[0][1]; A[i][j] 0123456789 011 1121 21331 314641 i=2; A[2][1] = A[1][0] + A[1][1]; A[2][2] = A[1][1] + A[1][2]; i=3; A[3][1] = A[2][0] + A[2][1]; A[3][2] = A[2][1] + A[2][2]; A[3][3] = A[2][2] + A[2][3]; Pascal triangle A[i][j] A[i1][j1]A[i1][j]

21 2D-Array 二維陣列 21 A[i][j] 0123456789 011 1121 21331 314641 41510 51 51615201561 for (j=1; j<= ; j++) A[i][j] =___________________ for(i=0;…) for(j=0;…) A[i][j]=1; for (i=1; i<10; i++) i j A[i][j] A[i1][j1]A[i1][j] i1i1 j1j1


Download ppt "2D-Array 二維陣列 1 *****0 ***** 1 ***** 2 ***** 3 ***** 4 ***** 5 ***** 6 ***** 7 ***** 8 ***** 0 1 * 2 ** 3 *** 4 **** 5 ***** 6 ****** 7 ******* 8 ********"

Similar presentations


Ads by Google