Voici mon coup de couteau à elle:
static void Spiral(int[,] m)
{
int n = m.GetUpperBound(0);
for (int i = 0; i < n/2; ++i)
{
for (int j = i; j <= n - i; ++j)
Console.Write(m[i, j] + " ");
for (int j = i + 1; j <= n - i; ++j)
Console.Write(m[j, n - i] + " ");
for (int j = i + 1; j <= n - i; ++j)
Console.Write(m[n - i, n - j] + " ");
for (int j = i + 1; j < n - i; ++j)
Console.Write(m[n - j, i] + " ");
}
Console.Write(m[n/2, n/2]+" ");
if (n % 2 == 1)
{
Console.Write(m[n/2, n/2+1] + " ");
Console.Write(m[n/2+1, n/2+1] + " ");
Console.Write(m[n/2+1, n/2] + " ");
}
}
static void Main(string[] args)
{
int[,] myArray = new int[,]{
{11, 12, 13, 14, 15},
{21, 22, 23, 24, 25},
{31, 32, 33, 34, 35},
{41, 42, 43, 44, 45},
{51, 52, 53, 54, 55}
};
Spiral(myArray);
}
La sortie est:
11 12 13 14 15 25 35 45 55 54 53 52 51 41 31 21 22 23 24 34 44 43 42 32 33
modifier: Works pour les deux même et taille étrange matrices carrées maintenant.
Vous devez être plus précis sur ce que vous rencontrez des problèmes et nous montrer ce que vous avez déjà essayé. –
Qu'avez-vous essayé, et où êtes-vous coincé? Nous sommes heureux de vous aider, mais vous devrez d'abord travailler un peu. –
Alors pourquoi était-ce fermé comme n'étant pas une vraie question? Il semble parfaitement clair ce qui était demandé. Je pense que vous avez sauté le flingue en fermant ça. –