cs50 pset4 / less反映check50不起作用

时间:2020-04-05 22:36:03

标签: c cs50

我的代码可以编译并正常运行,但是当我使用check50时,它说没有满足任何“要求”。

:( reflect correctly filters 1x2 image
    expected "0 0 255\n255 0...", not "3 0 0\n0 0 255..."
:( reflect correctly filters 1x3 image
    expected "0 0 255\n0 255...", not "246 55 65\n0 2..."
:( reflect correctly filters image that is its own mirror image
    expected "255 0 0\n255 0...", not "0 255 0\n255 0..."
:( reflect correctly filters 3x3 image
    expected "70 80 90\n40 5...", not "110 130 140\n4..."
:( reflect correctly filters 4x4 image
    expected "100 110 120\n7...", not "110 130 140\n1..."

代码:

void reflect(int height, int width, RGBTRIPLE image[height][width])
{
    void swap (RGBTRIPLE*, RGBTRIPLE*);
    for (int i = 0; i < height; i++)
    {
        int n = 1;
        for (int j = 0; j < width / 2; j++)
        {
            swap (&image[i][j], &image[i][(width - j)]);
            n++;
        }
    }
     return;
}
void swap (RGBTRIPLE*a, RGBTRIPLE*b)
 {
    RGBTRIPLE tempArray;
    RGBTRIPLE tempArray2;
    tempArray = *a;
    tempArray2 = *b;
    *a = tempArray2;
    *b = tempArray;
}

我浏览了许多其他帖子,但找不到任何解决方案。我可能找不到它,可能只是一些小细节。 任何帮助是极大的赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

假设j == 0,然后执行

swap (&image[i][j], &image[i][(width - j)]);

交换的元素的索引是什么?他们合法吗?

答案 1 :(得分:1)

这可能与交换功能调用一样简单。交换的第二个参数可能会更好

swap (&image[i][j], &image[i][width-1-j])

这对眼睛没有太大影响,但对Cs50检查程序可能有很大的影响。