cs50 pset4 структуры обмена фильтра - PullRequest
0 голосов
/ 05 февраля 2020

Я сталкиваюсь с некоторыми трудностями при выполнении отражающей части фильтра. По сути, структура имеет вид

typedef struct
{
    BYTE  rgbtBlue;
    BYTE  rgbtGreen;
    BYTE  rgbtRed;
} __attribute__((__packed__))
RGBTRIPLE; 

, и я пытался отразить изображение с помощью этой функции.

void reflect(int height, int width, RGBTRIPLE image[height][width])
{
    for (int i = 0; i < height; i++)
    {
        if (width % 2 == 0)
        {
            for (int j = 0; j < width/2; j++)
            {
                RGBTRIPLE temp = image[i][j];
                image[i][j] = image[i][width - j];
                image[i][width - j] = temp;
            }
        }
        else if (width % 3 == 0)
        {
            for (int j = 0; j < (width - 1)/2; j++)
            {
                RGBTRIPLE temp = image[i][j];
                image[i][j] = image[i][width - j];
                image[i][width - j] = temp;
            }
        }
    }
    return;
}

Код компилируется нормально, но конечный продукт совпадает с входным образ. Попытался запустить debug50, и я понял, что моя проблема заключается в том, как я меняю значения RGBTRIPLE. Любая помощь будет хорошей. Спасибо!

...