【发布时间】:2021-06-02 01:56:10
【问题描述】:
void blur(int height, int width, RGBTRIPLE image[height][width])
{
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
int red_total = 0;
int blue_total = 0;
int green_total = 0;
int number_counted = 0;
for (int k = -1; k <= 1; k++)
{
for (int l = -1; l <= 1; l++)
{
if (i + k <= height && i + k >= 0 && j + l <= width && j + l >= 0)
{
blue_total += image[i+k][j+l].rgbtBlue;
red_total += image[i+k][j+l].rgbtRed;
green_total += image[i+k][j+l].rgbtGreen;
number_counted ++;
}
}
}
image[i][j].rgbtBlue = blue_total / number_counted;
image[i][j].rgbtRed = red_total / number_counted;
image[i][j].rgbtGreen = green_total / number_counted;
}
}
return;
}
为什么那个部分是 && 运算符?
if (i + k <= height && i + k >= 0 && j + l <= width && j + l >= 0)
我用 || 运行它运营商,因为我的理解是,在问题的幌子下,如果满足任何这些条件,则无需添加任何块。然而为什么当我在 || 下运行它时它返回分段错误,而如果我用 && 运行它,问题会解决吗?
感谢您的回答!
【问题讨论】:
标签: cs50