СОҢЫ
Ары қарай есептерді шығару мысалдары келтірілген
3-мысал. Екі өлшемді жиымды a[n,m] жылан жолымен оңға, солға жылжыта отырып, бүтін сандармен толтыру есебін шығарайық.
/* a[n,n] матрицасын жылан жолымен оңға, солға жылжыта отырып толтыру */
using System;
namespace Array_Snake1
{ class Program
{ static void Main(string[] args)
{ int m, n, i, j, s = 0;
int[,] a = new int[100, 100];
Console.WriteLine("row,col=");
n = int.Parse(Console.ReadLine()); // жолдар саны
m = int.Parse(Console.ReadLine()); // бағаналар саны
for (i = 0; i < n; i++) // жолды таңдау
{ if (i % 2 == 0)
{ for (j = 0; j < m; j++)
a[i, j] = s++; // жұп жолды толтыру
}
else
{
for (j = m - 1; j >= 0; j--)
a[i,j] = s++; // тақ жолды толтыру
}
}
for (i = 0; i < n; i++)
{ for (j = 0; j < m; j++)
Console.Write(a[i, j] + "\t"); // жиымды шығару
Console.WriteLine('\n');
}
Console.ReadKey();
}
}
}
4-мысал. «5x5 өлшемді матрицаны спираль бойынша толтыру» программасы (сағат тілі бойынша)
using System;
namespace Array_Spiral6
{ class Program
{ static void Main(string[] args)
{ const int n = 5, m = 5;
int[,] matrix = new int[n, m];
int row = 0, col = 0, dx = 1, dy = 0;
int dirChanges = 0; int visits = m;
for (int i = 0; i < matrix.Length; i++)
{ matrix[row, col] = i + 1;
if (--visits == 0)
{ visits = m * (dirChanges % 2) + n *
((dirChanges + 1) % 2) - (dirChanges / 2 - 1) - 2;
Достарыңызбен бөлісу: |