结果与答案一样,洛谷却提示WA,这是为什么?

提示WA后,我把第二个数据下载了下来,自己运行之后,发现我的结果和官方给的结果一样,为什么说我错了呢?

img

img

#include<cstdio>
#include<cstring>
#define r(i,a,b) for(register int i=a;i<=b;i++)
using namespace std;char c[11][11],mb[11][11],tmp[11][11];int n;
inline bool change1(){r(i,1,n)r(j,1,n)if(mb[j][n-i+1]!=c[i][j]) return false;return true;}
inline bool change2(){r(i,1,n)r(j,1,n)if(mb[n-i+1][n-j+1]!=c[i][j]) return false;return true;}
inline bool change3(){r(i,1,n)r(j,1,n)if(mb[n-j+1][i]!=c[i][j]) return false;return true;}
inline bool change4(){r(i,1,n)r(j,1,n)if(mb[i][n-j+1]!=c[i][j]) return false;return true;}
inline bool change5(){r(i,1,n)r(j,1,n)c[i][j]=tmp[i][n-j+1];return change1()||change2()||change3();}
inline bool change6(){r(i,1,n)r(j,1,n)if(mb[i][j]!=c[i][j]) return false;return true;}
signed main()
{
    scanf("%d\n",&n);
    r(i,1,n) gets(c[i]+1);
    r(i,1,n) gets(mb[i]+1);
    if(change1()) return puts("1")&0;
    if(change2()) return puts("2")&0;
    if(change3()) return puts("3")&0;
    if(change4()) return puts("4")&0;
    memcpy(tmp,c,sizeof(tmp));
    if(change5()) return puts("5")&0;
    memcpy(c,tmp,sizeof(c));
    if(change6()) return puts("6")&0;
    puts("7");
}

https://blog.csdn.net/weixin_44686648/article/details/93399267
这篇有讲,是因为环境不同,换行符的不同导致的错误
我也错懵了...

是不是你的输出格式

刚刚我用洛谷的在线ide运行我的代码,发现同样的代码,同样的输入,在线IDE运行结果与在本地运行的结果不一样。
题目地址: [USACO1.2]方块转换 Transformations - 洛谷 https://www.luogu.com.cn/problem/P1205

下面是我的代码

#include <stdio.h>

int main(){
    int n;
    char data[10][10] = { 0 }, dest[10][10] = { 0 },
        tmp[10][10] = { 0 };
    scanf("%d\n", &n);
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            scanf("%c", &data[i][j]);
        }
        getchar();
    }
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            scanf("%c", &dest[i][j]);
        }
        getchar();
    }
    //1
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            tmp[j][n - i - 1] = data[i][j];
        }
    }
    int flag = 1;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (tmp[i][j] != dest[i][j]) {
                flag = 0;
                break;
            }
        }
    }
    if (flag) {
        printf("1\n");
        return 0;
    }
    //2
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            tmp[n - i - 1][n - j - 1] = data[i][j];
        }
    }
    flag = 1;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (tmp[i][j] != dest[i][j]) {
                flag = 0;
                break;
            }
        }
    }
    if (flag) {
        printf("2\n");
        return 0;
    }
    //3
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            tmp[n - j - 1][i] = data[i][j];
        }
    }
    flag = 1;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (tmp[i][j] != dest[i][j]) {
                flag = 0;
                break;
            }
        }
    }
    if (flag) {
        printf("3\n");
        return 0;
    }
    //4
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            tmp[i][n - j - 1] = data[i][j];
        }
    }
    flag = 1;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (tmp[i][j] != dest[i][j]) {
                flag = 0;
                break;
            }
        }
    }
    if (flag) {
        printf("4\n");
        return 0;
    }
    //5-1
    char temp[10][10] = { 0 };
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            temp[i][n - j - 1] = data[i][j];
        }
    }
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            tmp[j][n - i - 1] = temp[i][j];
        }
    }
    flag = 1;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (tmp[i][j] != dest[i][j]) {
                flag = 0;
                break;
            }
        }
    }
    if (flag) {
        printf("5\n");
        return 0;
    }
    //5-2
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            temp[i][n - j - 1] = data[i][j];
        }
    }
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            tmp[n - i - 1][n - j - 1] = temp[i][j];
        }
    }
    flag = 1;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (tmp[i][j] != dest[i][j]) {
                flag = 0;
                break;
            }
        }
    }
    if (flag) {
        printf("5\n");
        return 0;
    }
    //5-3
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            temp[i][n - j - 1] = data[i][j];
        }
    }
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            tmp[n - j - 1][i] = temp[i][j];
        }
    }
    flag = 1;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (tmp[i][j] != dest[i][j]) {
                flag = 0;
                break;
            }
        }
    }
    if (flag) {
        printf("5\n");
        return 0;
    }
    //6
    flag = 1;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (data[i][j] != dest[i][j]) {
                flag = 0;
                break;
            }
        }
    }
    if (flag) {
        printf("6\n");
        return 0;
    }
    printf("7\n");
    return 0;
}