C语言编写函数实现S 型填充数组。
以下是一个C语言函数,用于实现S型填充数组:
void sFillArray(int arr[][MAX_COLS], int rows, int cols)
{
int i, j, k = 0;
int top = 0, bottom = rows - 1, left = 0, right = cols - 1;
while (top <= bottom && left <= right)
{
// Fill top row
for (i = left; i <= right; i++)
{
arr[top][i] = k++;
}
top++;
// Fill right column
for (i = top; i <= bottom; i++)
{
arr[i][right] = k++;
}
right--;
// Fill bottom row
if (top <= bottom)
{
for (i = right; i >= left; i--)
{
arr[bottom][i] = k++;
}
bottom--;
}
// Fill left column
if (left <= right)
{
for (i = bottom; i >= top; i--)
{
arr[i][left] = k++;
}
left++;
}
}
}
该函数接受一个二维数组和数组的行和列数作为输入,并将S型填充数组存储在该数组中。该函数使用四个变量来跟踪要填充的区域的边界,并使用一个循环来填充该区域。在每次循环迭代中,该函数填充一个矩形的上、右、下和左侧,直到填充整个区域为止。填充过程中,使用一个计数器变量k来跟踪填充的数字。
原文地址: https://www.cveoy.top/t/topic/bpk6 著作权归作者所有。请勿转载和采集!