在通过了自己的测试之后提交答案,很遗憾的WA了,于是下载了洛谷提供的测试数据,发现输入了下载下来的测试数据后本地的输出结果和标答一致,但是提交无论如何也过不了,再检查了输入格式等实在找不出错误故来求助各路大佬(双手合十)
代码如下:
#include <stdio.h>
#include <stdlib.h>
void input_img(int n, char img[n][n]);
int contrast(int n, char img_2[n][n], char img_transform[n][n]);
int method_1(int n, char img[n][n], char img_transform[n][n]);
int method_2(int n, char img[n][n], char img_transform[n][n]);
int method_3(int n, char img[n][n], char img_transform[n][n]);
int method_4(int n, char img[n][n], char img_transform[n][n]);
int method_5(int n, char img[n][n], char img_transform[n][n]);
int method_6(int n, char img[n][n], char img_transform[n][n]);
int main()
{
int n, key=-1, i, j;
scanf("%d", &n);
char img[n][n], img_transform[n][n];
input_img(n, img);
input_img(n, img_transform);
if (key = method_6(n, img, img_transform));
else if(key = method_1(n, img, img_transform)) ;
else if(key = method_2(n, img, img_transform)) ;
else if(key = method_3(n, img, img_transform)) ;
else if(key = method_4(n, img, img_transform)) ;
else if(key = method_5(n, img, img_transform)) ;
switch (key) {
case 1: printf("1\n"); break;
case 2: printf("2\n"); break;
case 3: printf("3\n"); break;
case 4: printf("4\n"); break;
case 5: printf("5\n"); break;
case 6: printf("6\n"); break;
default: printf("7\n"); break;
}
system("pause");
return 0;
}
void input_img(int n, char img[n][n])
{
int i, j;
char c;
for (i=0; i<n; i++)
for (j=0; j<n; j++) {
do{
c = getchar();
}while( c == '\n');
img[i][j] = c;
}
}
int contrast(int n, char img_2[n][n], char img_transform[n][n])
{
int i, j;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
if (img_2[i][j] != img_transform[i][j])
return 1;
return 0;
}
int method_1(int n, char img[n][n], char img_transform[n][n])
{
int i, j;
char img_2[n][n];
for (i=0; i<n; i++)
for (j=0; j<n; j++)
img_2[j][n-1-i] = img[i][j];
if (contrast(n, img_2, img_transform)) {
return 0;
}
return 1;
}
int method_2(int n, char img[n][n], char img_transform[n][n])
{
int i, j;
char img_2[n][n];
for (i=0; i<n; i++)
for (j=0; j<n; j++)
img_2[n-1-i][n-1-j] = img[i][j];
if (contrast(n, img_2, img_transform)) {
return 0;
}
return 2;
}
int method_3(int n, char img[n][n], char img_transform[n][n])
{
int i, j;
char img_2[n][n];
for (i=0; i<n; i++)
for (j=0; j<n; j++)
img_2[n-1-j][i] = img[i][j];
if (contrast(n, img_2, img_transform)) {
return 0;
}
return 3;
}
int method_4(int n, char img[n][n], char img_transform[n][n])
{
int i, j;
char img_2[n][n];
for (i=0; i<n; i++)
for (j=0; j<n; j++)
img_2[i][n-1-j] = img[i][j];
if (contrast(n, img_2, img_transform)) {
return 0;
}
return 4;
}
int method_5(int n, char img[n][n], char img_transform[n][n])
{
int i, j;
char img_2[n][n];
for (i=0; i<n; i++)
for (j=0; j<n; j++)
img_2[i][n-1-j] = img[i][j];
if (method_1(n, img_2, img_transform))
return 5;
else if (method_2(n, img_2, img_transform))
return 5;
else if (method_3(n, img_2, img_transform))
return 5;
else
return 0;
}
int method_6(int n, char img[n][n], char img_transform[n][n])
{
int i, j;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
if(img[i][j] != img_transform[i][j])
return 0;
return 6;
}
输入样例(题目下载)
5
-@@@-
-@@--
-@---
-----
-----
-----
----@
---@@
--@@@
-----
输出样例(题目下载)
5
我的vscode上运行的结果
