gpt4 book ai didi

c - 从数组中检索和存储元素(根据条件)

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:32 26 4
gpt4 key购买 nike

给定一个包含 81 个元素的数组(表示一个 9x9 的网格),我如何遍历每个元素,捕获它周围的三个元素,然后对它们执行操作,然后继续处理每一行、列的下三个元素,或子矩阵。查看下方或数独网格以查看布局。


define COL(n) ((n) % 9)
define ROW(n) ((n) / 9)
define SUB(n) ((n / 3) % 9)

比如我有


int grid[81];


int array_x[9], array_y[9], array_s[9];

由于总共9x9的格子可以分为以下9类,所以每个数组中有9个元素,希望将每列(x轴)的元素三者为一组,进行


r = ((a = ~a) & (b = ~b)) | ((b | a) & ~c);

// or

r = ((~a & ~b)) | ((~b | ~a) & ~c);

对它们取三个结果数,对它们进行运算,然后存入数组。

如果这听起来不可能,抱歉,我想要一种不同的方式来做到这一点。绝对愿意接受建议...

最佳答案

另一个尝试:

void applyThingy(int *grid, int xPitch, int yPitch)
{
int row, column;
int *rowPointer = grid;

for(row = 0; row < 3; ++row)
{
int *columnPointer = rowPointer;

for(column = 0; column < 3; ++column)
{
doOperation(columnPointer);
columnPointer += xPitch;
}

rowPointer += yPitch * 9;
}
}

applyThingy(&grid[SUB(n)], 1, 1); // Perform on 3x3 subgrid
applyThingy(&grid[ROW(n)], 1, 0); // Perform on row
applyThingy(&grid[COL(n)], 0, 1); // Perform on column

关于c - 从数组中检索和存储元素(根据条件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/641097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com