Напечатать элементы заданной матрицы змейкой снизу вверх - C (СИ)
Формулировка задачи:
Решение задачи: «Напечатать элементы заданной матрицы змейкой снизу вверх»
void main()
{ int k,n=5,i,j;
int mas[5][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
for (i=0; i<n; i++) {
for (j=0; j<n; j++)
printf("%4d", mas[i][j]);
printf("\n");
}
printf("\n\n\n");
k=1;
for (i=n-1; i>=0; i--) {
if (k%2!=0)
for (j=n-1; j>=0; j--)
printf("%4d", mas[i][j]);
else
for (j=0; j<n; j++)
printf("%4d", mas[i][j]);
printf("\n");
k++;
}
getchar();
}
Объяснение кода листинга программы
В этом коде задана матрица 5х5, представленная в виде двумерного массива.
Сначала выводится первый элемент каждой строки матрицы, начиная с нижней строки и до верхней, с помощью двух вложенных циклов. Затем выводится новая строка.
Затем начинается вывод элементов матрицы в форме змейки. Вывод начинается с последнего элемента верхней строки (i=n-1, j=n-1), затем двигается вправо до последнего элемента верхней строки (i=n-1, j=0), затем двигается влево до первого элемента верхней строки (i=0, j=0). После этого цикл переходит к следующей строке, начиная с элемента (i=0, j=n-1) и двигаясь вниз до (i=n-1, j=n-1). Если на текущем шаге змейки на нечетном шаге выводится элемент матрицы, а на четном - пустое место.
Этот процесс повторяется до тех пор, пока не будут выведены все элементы матрицы.