我在前几个月通过高中课程学习C语言编码。最近有人向我提到,通常有一种方法可以提高代码的效率,我认为我的问题可以提高效率。我不确定如何,但我有预感,它可以更快。
我们给出了行和列大小为n的2D正方形整数数组。我们在2D方阵中有子行,行和列大小为s。我们总是可以假设s会均匀地划分n。我编写了以下代码来迭代每个子方案
目前我的代码看起来像这样:
int **grid;
int s, i, j, k, l;
// reading in inputs, other processing
for (i = 0; i < n; i += s) {
for (j = 0; j < n; j += s) {
for (k = 0; k < s; k++) {
for (l = 0; l < s; l++) {
printf("%d \n", grid[i + k][j + l]);
}
}
printf("next subsquare: \n");
}
}
正如你所看到的,我已经有4个嵌套for循环,我觉得以这种格式使用它有点麻烦。有一个更好的方法吗?稍后,我可能会对每个子方格进行求和,或者对每个子方格执行一些其他操作。