USACO Section 1.2 Transformations

/*
ID: wgh86791
LANG: C
TASK: transform
*/
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#define N 10

int main(void)
{
    FILE * in;
    in = fopen("transform.in", "r");
    FILE * out;
    out = fopen("transform.out", "w+");
    //out = stdout;
    int n, i, j;
    char s[N][N], temp[N][N], to[N][N];
    int flag[11];
    while(fscanf(in, "%d", &n)!=EOF)
    {
        memset(flag, 0, sizeof(flag));
        /* #5 扩展为 8, 9, 10 */
        for(i=0; i<n; i++)
            for(j=0; j<n; j++)
                fscanf(in, " %c", &s[i][j]);
        for(i=0; i<n; i++)
            for(j=0; j<n; j++)
                fscanf(in, " %c", &to[i][j]);
        for(i=0; i<n; i++)
            for(j=0; j<n; j++)
            {
                if(!flag[1] && s[i][j] != to[j][n-1-i])
                    flag[1] = 1;
                if(!flag[2] && s[i][j] != to[n-i-1][n-j-1])
                    flag[2] = 1;
                if(!flag[3] && s[i][j] != to[n-j-1][i])
                    flag[3] = 1;
                if(!flag[4] && s[i][j] != to[i][n-j-1])
                    flag[4] = 1;
                if(!flag[6] && s[i][j] != to[i][j])
                    flag[6] = 1;
                if(!flag[8] && s[i][j] != to[n-j-1][n-1-i])
                    flag[8] = 1;
                if(!flag[9] && s[i][j] != to[n-i-1][j])
                    flag[9] = 1;
                if(!flag[10] && s[i][j] != to[j][i])
                    flag[10] = 1;
            }
        if(flag[8] && flag[9] && flag[10])
            flag[5] = 1;
        for(i=1; i<=7; i++)
            if(!flag[i])
            {
                flag[7] = 1;
                fprintf(out, "%d\n", i);
                break;
            }
    }
    return 0;
}


你可能感兴趣的:(c,File,扩展)