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 }
运行结果略。