二维数组例题习题

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         }

运行结果略。

猜你喜欢

转载自www.cnblogs.com/wanjinliu/p/12050006.html