Заполнить матрицу змейкой

221
11 июня 2022, 02:00

Помогите пожалуйста исправить код !

Должно получиться вот так :

Вот мой код:

int k = Convert.ToInt32(Console.ReadLine());
int m = Convert.ToInt32(Console.ReadLine());
int[,] a = new int[k, m];
int c = 0;
for (int i = 0; i < k; i++)
{
    for (int j = 0; j < m; j++)
    {
        a[i, j] = c++;
    }
}
for (int i = 0; i < k; i++)
{
    for (int j = 0; j < m; j++)
    {
        Console.Write(a[j,i] + " ");
    }
    Console.WriteLine();
}
Console.ReadKey();
Answer 1

Цикл по столбцам (слева направо), внутри него цикл по строкам, направление которого чередуется (сначала сверху вниз, затем снизу вверх). Получаем примерно такой код:

var rowsCount = Convert.ToInt32(Console.ReadLine());
var columnsCount = Convert.ToInt32(Console.ReadLine());
var a = new int[rowsCount, columnsCount];
var number = 1;
var positiveDirection = true;
for (int j = 0; j < columnsCount; j++)
{
    if (positiveDirection)
    {
        for (int i = 0; i < rowsCount; i++)
        {
            a[i, j] = number++;
        }
    }
    else
    {
        for (int i = rowsCount - 1; i >= 0; i--)
        {
            a[i, j] = number++;
        }
    }
    positiveDirection = !positiveDirection;
}
for (int i = 0; i < rowsCount; i++)
{
    for (int j = 0; j < columnsCount; j++)
    {
        Console.Write(a[i, j] + " ");
    }
    Console.WriteLine();
}
Console.ReadKey();
Answer 2

А давайте лучше по месту вычислять, кто там сидит. Ideone

И делайте имена переменных такие, чтобы не путаться, что в них лежит.

   int hgt = 4;
   int wdt = 5;
   int[,] a = new int[hgt, wdt];
    for (int y = 0; y < hgt; y++)
      for (int x = 0; x < wdt; x++) 
        a[y, x] = ((x%2)==0?y:(hgt-y-1)) + 1 + x * hgt;
    for (int y = 0; y < hgt; y++) {
      for (int x = 0; x < wdt; x++) 
           Console.Write(a[y,x] + " ");
      Console.WriteLine();
    }
READ ALSO
Галерея с оверлеем

Галерея с оверлеем

Помогите пожалуйста реализовать галерею, или подскажите готовое решение с готовым функционалом как на скриншоте: http://prntscrcom/vmn588

215
Как оптимизировать код JS

Как оптимизировать код JS

сделал простой калькулятор, который складывает, вычитает, умножает и делитНо как этот код уменьшить? На сколько я понимаю это делается с помощью...

187
JS задача с циклом

JS задача с циклом

Нужно написать цикл, который перебирает числа от 4 до 37 и выполняет следующие действия:

211
Склонение слов по русским падежам

Склонение слов по русским падежам

Подскажите, почему неверно склоняются слова

205