1、對以下二維數組中的二進制數取反
|1,0,0,1|
|0,1,1,0|
|1,1,0,0|
*2、對以下二維數組進行轉置
|1,2,3,4|
|5,6,7,8|
|9,10,J,Q|
3、利用二維數組完成乞丐領賞程序
4、國際象棋棋盤中車、象(含中國象棋“象”)、馬的攻擊范圍
5、打印楊輝三角形前五行
6、計算班級每個學生總分、學科平均分(含表頭行、姓名列)
第六題說明:
表結構如下:
程序運行大致界面如下:
輸入第1個同學的姓名:
張三
輸入語文成績:
80
輸入數學成績:
90
輸入英語成績:
70
..............
班級成績表如下:
其中阿拉伯數字、姓名、學科都應動態輸出。
表格中綠色部分由用戶輸入,紅色部分由計算得來。
思路1:二維數組描述全表,計算時需要字符串和數字來回轉化。
思路2:如下圖
所有數據由兩個一維數組和一個二維數組構成。輸入輸出需要注意邏輯關系,計算可以免轉換。
參考代碼(思路1):
1 static void Main(string[] args) 2 { 3 int t; 4 var a=new string[5,5]; 5 a[0, 0] = "姓名"; 6 a[0, 1] = "語文"; 7 a[0, 2] = "數學"; 8 a[0, 3] = "英語"; 9 a[0, 4] = "總分"; 10 a[4, 0] = "平均分"; 11 //輸入 12 for (int i = 1; i < a.GetLength(0)-1; i++) 13 { 14 for (int j =0; j < a.GetLength(1)-1; j++) 15 { 16 if(j==0) 17 { 18 Console.WriteLine("輸入第"+i+"個同學的姓名:"); 19 } 20 else 21 { 22 Console.WriteLine("輸入" + a[0,j] + "成績:"); 23 } 24 a[i, j] = Console.ReadLine(); 25 } 26 } 27 //計算總分 28 for (int i = 1; i < a.GetLength(0)-1; i++) 29 { 30 t = 0; 31 for (int j = 1; j < a.GetLength(1) - 1; j++) 32 { 33 t+=int.Parse(a[i, j]); 34 } 35 a[i, a.GetLength(1) - 1] = t.ToString(); 36 } 37 //計算平均分 38 for (int i = 1; i < a.GetLength(1) ; i++) 39 { 40 t = 0; 41 for (int j = 1; j < a.GetLength(0)-1 ; j++) 42 { 43 t += int.Parse(a[j, i]); 44 } 45 t /= (a.GetLength(0) - 2); 46 a[a.GetLength(0) - 1,i] = t.ToString(); 47 } 48 //打印 49 for (int i = 0; i < a.GetLength(0); i++) 50 { 51 for (int j = 0; j < a.GetLength(1); j++) 52 { 53 Console.Write(a[i, j] + "\t"); 54 } 55 Console.WriteLine(); 56 } 57 Console.ReadKey(); 58 }
運行結果略。