萌新求助!请问大佬为什么我程序一直是wa,自己试了几组是对的。
查看原帖
萌新求助!请问大佬为什么我程序一直是wa,自己试了几组是对的。
1388837
Chan_magic楼主2024/8/25 21:23
#include<stdio.h>
#include<string.h>
#include<stdbool.h>

char arr[11][11],mid[11][11],final[11][11];   
int i,j;

bool turn90(char a[11][11], char b[11][11], char c[11][11],int n);
bool turn180(char a[11][11], char b[11][11], char c[11][11],int n);
bool turn270(char a[11][11], char b[11][11], char c[11][11],int n);
bool turnover(char a[11][11], char b[11][11], char c[11][11],int n);
bool group(char a[11][11], char b[11][11], char c[11][11],int n);
bool unchanged(char a[11][11], char b[11][11], char c[11][11],int n);

int main(void)
{
    int n,i,j;
    bool a1,a2,a3,a4,a5,a6;

    scanf("%d",&n);

    getchar();

    for(i = 0; i < n; i++)
    {
        fgets(arr[i],11,stdin);
        arr[i][strcspn(arr[i],"\n")] = 0;
    }


    for(i = 0; i < n; i++)
    {
        fgets(final[i],11,stdin);
        final[i][strcspn(final[i],"\n")] = 0;
    }
    
    a1 = turn90(mid, arr, final, n);
    a2 = turn180(mid, arr, final, n);
    a3 = turn270(mid, arr, final, n);
    a4 = turnover(mid, arr, final, n);
    a5 = group(mid, arr, final, n);
    a6 = unchanged(mid, arr, final, n);
    if(a1)
        printf("1\n");
    else if(a2)
        printf("2\n");
    else if(a3)
        printf("3\n");
    else if(a4)
        printf("4\n");
    else if(a5)
        printf("5\n");
    else if(a6)
        printf("6\n");
    else
        printf("7\n");

    return 0;

}


bool turn90(char a[11][11], char b[11][11], char c[11][11],int n)
{
    int o = 0;
    for(i = 0; i < n; i++)
    {
        for(j = n - 1; j >= 0; j--)
            a[i][n - j - 1] = b[j][i];
    }  
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(a[i][j] == c[i][j])
             o++;
        }
    }
    if(o == n * n)
        return 1;
    else
        return 0;
}

bool turn180(char a[11][11], char b[11][11], char c[11][11],int n)
{
    int o = 0;
    for(i = n - 1; i >= 0; i--)
        {
            for(j = n - 1; j >= 0; j--)
                a[n - i - 1][n - j - 1] = b[i][j];
        }
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(a[i][j] == c[i][j])
             o++;
        }
    }
    if(o == n * n)
        return 1;
    else
        return 0;
}

bool turn270(char a[11][11], char b[11][11], char c[11][11],int n)
{
 int o = 0;
    for(i = n - 1; i >= 0; i--)
        {
            for(j = 0; j < n; j++)
                a[n - 1 - i][j] = b[j][i];
        }  
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(a[i][j] == c[i][j])
             o++;
        }
    }
    if(o == n * n)
        return 1;
    else
        return 0;
}

bool turnover(char a[11][11], char b[11][11], char c[11][11],int n)
{
    int o = 0;
    for(i = 0; i < n; i++)
        {
            for(j = n - 1; j >= 0; j--)
                a[i][n - j - 1] = b[i][j];
        }
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(a[i][j] == c[i][j])
             o++;
        }
    }
    if(o == n * n)
        return 1;
    else
        return 0;
}

bool group(char a[11][11], char b[11][11], char c[11][11],int n)
{
    int o = 0;
    for(i = 0; i < n; i++)
        {
            for(j = n - 1; j >= 0; j--)
                a[i][n - j - 1] = b[i][j];
        }
    for(i = 0; i < n; i++)
        {
            for(j = 0; j < n; j++)
                b[i][j] = a[i][j];
        }
    int flag = 1;
    while(1)
    {
        if(flag == 1)
        {
            for(i = 0; i < n; i++)
            {
                for(j = n - 1; j >= 0; j--)    
                    a[i][n - j - 1] = b[j][i];
             }  
             for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(a[i][j] == c[i][j])
             o++;
        }
    }
    if(o == n * n)
        return 1;
    else
        return 0;
            flag = 2;
        }
        if(flag == 2)
        {
            for(i = n - 1; i >= 0; i--)
            {
                for(j = n - 1; j >= 0; j--)
                    a[n - i - 1][n - j - 1] = b[i][j];
            }
            for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(a[i][j] == c[i][j])
             o++;
        }
    }
    if(o == n * n)
        return 1;
    else
        return 0;
            flag = 3;
        }
        if(flag == 3)
        {
            for(i = n - 1; i >= 0; i--)
            {
                for(j = 0; j < n; j++)
                    a[n - 1 - i][j] = b[j][i];
            }  
            for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(a[i][j] == c[i][j])
             o++;
        }
    }
    if(o == n * n)
        return 1;
    else
        return 0;
        }
        break;
    }
    return 0;
}

bool unchanged(char a[11][11], char b[11][11], char c[11][11],int n)
{
    int o = 0;
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(a[i][j] == c[i][j])
             o++;
        }
    }
    if(o == n * n)
        return 1;
    else
        return 0;
}
2024/8/25 21:23
加载中...