Advertisement
AvengersAssemble

2DArray Sums

Jan 2nd, 2014
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.44 KB | None | 0 0
  1. using System;
  2.  
  3. namespace P61Ex3
  4. {
  5.     class Program
  6.     {
  7.         public static int OverMainDiagonalSum(int[,] a)
  8.         {
  9.             int sum = 0;
  10.             for (int i = 0; i < a.GetLength(0); i++)
  11.             {
  12.                 for (int k = i + 1; k < a.GetLength(1); k++)
  13.                     sum += a[i, k];
  14.             }
  15.             return sum;
  16.         }
  17.         public static int UnderMainDiagonalSum(int[,] a)
  18.         {
  19.             int sum = 0;
  20.             for (int i = 0; i < a.GetLength(0); i++)
  21.             {
  22.                 for (int k = 0; k < i; k++)
  23.                     sum += a[i, k];
  24.             }
  25.             return sum;
  26.         }
  27.         public static int OverSecondaryDiagonalSum(int[,] a)
  28.         {
  29.             int sum = 0;
  30.             for (int i = 0; i < a.GetLength(0); i++)
  31.             {
  32.                 for (int k = 0; k < a.GetLength(1) - i - 1; k++)
  33.                     sum += a[i, k];
  34.             }
  35.             return sum;
  36.         }
  37.         public static int UnderSecondaryDiagonalSum(int[,] a)
  38.         {
  39.             int sum = 0;
  40.             for (int i = 0; i < a.GetLength(0); i++)
  41.             {
  42.                 for (int k = 0; k < i; k++)
  43.                     sum += a[i, a.GetLength(1) - k - 1];
  44.             }
  45.             return sum;
  46.         }
  47.         public static int FrameSum(int[,] a)
  48.         {
  49.             int sum = 0;
  50.             for (int i = 0; i < a.GetLength(0); i++)
  51.             {
  52.                 if (i == 0 || i == a.GetLength(0) - 1)
  53.                     for (int k = 0; k < a.GetLength(1); k++)
  54.                         sum += a[i, k];
  55.                 else
  56.                     sum += a[i, 0] + a[i, a.GetLength(1) - 1];
  57.             }
  58.             return sum;
  59.         }
  60.         public static string RowSum(int[,] a)
  61.         {
  62.             int sum = 0;
  63.             string sumStr = "";
  64.             for (int i = 0; i < a.GetLength(0); i++)
  65.             {
  66.                 sum = 0;
  67.                 sumStr += "Row " + (i + 1);
  68.                 for (int k = 0; k < a.GetLength(1); k++)
  69.                 {
  70.                     sum += a[i, k];
  71.                 }
  72.                 sumStr += " sum " + sum + " --- ";
  73.             }
  74.             return sumStr;
  75.         }
  76.         public static string ColumnSum(int[,] a)
  77.         {
  78.             int sum = 0;
  79.             string sumStr = "";
  80.             for (int i = 0; i < a.GetLength(1); i++)
  81.             {
  82.                 sum = 0;
  83.                 sumStr += "Column " + (i + 1);
  84.                 for (int k = 0; k < a.GetLength(0); k++)
  85.                 {
  86.                     sum += a[k, i];
  87.                 }
  88.                 sumStr += " sum " + sum + " --- ";
  89.             }
  90.             return sumStr;
  91.         }
  92.         public static int MainDiagonalSum(int[,] a)
  93.         {
  94.             int sum = 0;
  95.             for (int i = 0; i < a.GetLength(0); i++)
  96.                 sum += a[i, i];
  97.             return sum;
  98.         }
  99.         public static int SecondaryDiagonalSum(int[,] a)
  100.         {
  101.             int sum = 0;
  102.             for (int i = 0; i < a.GetLength(0); i++)
  103.                 sum += a[i, a.GetLength(1) - i - 1];
  104.             return sum;
  105.         }
  106.         static void Main()
  107.         {
  108.             int[,] arr = new int[5, 5];
  109.             Random rnd = new Random();
  110.             for (int i = 0; i < arr.GetLength(0); i++)
  111.             {
  112.                 for (int k = 0; k < arr.GetLength(1); k++)
  113.                     arr[i, k] = rnd.Next(1, 10);
  114.             }
  115.             for (int i = 0; i < arr.GetLength(0); i++)
  116.             {
  117.                 for (int k = 0; k < arr.GetLength(1); k++)
  118.                     Console.Write(arr[i, k] + " ");
  119.                 Console.WriteLine();
  120.             }
  121.             Console.WriteLine();
  122.             Console.WriteLine("Row sums\n" +RowSum(arr));
  123.             Console.WriteLine("Column sums\n" + ColumnSum(arr));
  124.             Console.WriteLine("Frame sum " + FrameSum(arr));
  125.             Console.WriteLine("Main diagonal sum " + MainDiagonalSum(arr));
  126.             Console.WriteLine("Over main diagonal sum " + OverMainDiagonalSum(arr));
  127.             Console.WriteLine("Under main diagonal sum " + UnderMainDiagonalSum(arr));
  128.             Console.WriteLine("Seocndary diagonal sum " + SecondaryDiagonalSum(arr));
  129.             Console.WriteLine("Over secondary diagonal sum " + OverSecondaryDiagonalSum(arr));
  130.             Console.WriteLine("Under secondary diagonal sum " + UnderSecondaryDiagonalSum(arr));
  131.         }
  132.     }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement