Advertisement
striking

Untitled

Dec 24th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.02 KB | None | 0 0
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. class PrintMatrixSizeNFour
  5. {
  6.     static int N = 0;
  7.     static void Main()
  8.     {
  9.         Console.Write("Size of the matrix [N,N] = ");
  10.         N = int.Parse(Console.ReadLine());
  11.         int[,] matrix = new int[N, N];
  12.         int loops = 0;
  13.         int numberOfOperations = (N - 1) * 2 + 1;
  14.         Console.WriteLine();
  15.  
  16.         while (loops <= numberOfOperations)
  17.         {
  18.             FirstSide(matrix);
  19.             loops++;
  20.             if (loops == numberOfOperations)
  21.             {
  22.                 break;
  23.             }
  24.  
  25.             SecondSide(matrix);
  26.             loops++;
  27.             if (loops == numberOfOperations)
  28.             {
  29.                 break;
  30.             }
  31.  
  32.             ThirdSide(matrix);
  33.             loops++;
  34.             if (loops == numberOfOperations)
  35.             {
  36.                 break;
  37.             }
  38.  
  39.             FourthSide(matrix);
  40.             loops++;
  41.         }
  42.         PrintMatrix(matrix);
  43.         Console.WriteLine();
  44.     }
  45.  
  46.    
  47.     static int firstSideModifi = 0;
  48.     static int num = 1;
  49.     static int secondSideModifi = 0;
  50.     static int thirdSideModifi = 0;
  51.     static int fourthSideModifi = 0;
  52.  
  53.     static int[,] FirstSide(int[,] matrix)
  54.     {
  55.         for (int p = firstSideModifi; p <= firstSideModifi; p++)
  56.         {
  57.             for (int i = firstSideModifi; i < matrix.GetLength(0) - firstSideModifi; i++)
  58.             {
  59.                 matrix[i, p] = num;
  60.                 num++;
  61.             }
  62.         }
  63.         firstSideModifi++;
  64.         return matrix;
  65.     }
  66.  
  67.     static int[,] SecondSide(int[,] matrix)
  68.     {
  69.         for (int i = (N - 1) - secondSideModifi; i <= (N - 1) - secondSideModifi; i++)
  70.         {
  71.             for (int p = 1 + secondSideModifi; p < N - secondSideModifi; p++)
  72.             {
  73.                 matrix[i, p] = num;
  74.                 num++;
  75.             }
  76.         }
  77.         secondSideModifi++;
  78.         return matrix;
  79.     }
  80.  
  81.     static int[,] ThirdSide(int[,] matrix)
  82.     {
  83.         for (int p = (N - 1) - thirdSideModifi; p <= (N - 1) - thirdSideModifi; p++)
  84.         {
  85.             for (int i = (N - 2) - thirdSideModifi; i >= thirdSideModifi; i--)
  86.             {
  87.                 matrix[i, p] = num;
  88.                 num++;
  89.             }
  90.         }
  91.         thirdSideModifi++;
  92.         return matrix;
  93.     }
  94.  
  95.     static int[,] FourthSide(int[,] matrix)
  96.     {
  97.         for (int i = 0 + fourthSideModifi; i <= fourthSideModifi; i++)
  98.         {
  99.             for (int p = (N - 2) - fourthSideModifi; p >= 1 + fourthSideModifi; p--)
  100.             {
  101.                 matrix[i, p] = num;
  102.                 num++;
  103.             }
  104.         }
  105.         fourthSideModifi++;
  106.         return matrix;
  107.     }
  108.  
  109.     static void PrintMatrix(int[,] matrix)
  110.     {
  111.         for (int i = 0; i < matrix.GetLength(0); i++)
  112.         {
  113.             for (int p = 0; p < matrix.GetLength(1); p++)
  114.             {
  115.                 Console.Write("{0, 5} ", matrix[i, p]);
  116.             }
  117.             Console.WriteLine();
  118.         }
  119.     }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement