/* 模拟OJ系统进行测评的过程 如何去测评两组数据呢?完全匹配当然就是AC啦,那PE和WA如何发现呢? 题目思路: 将输入的两组数据去掉'\n','\t' 和' ',得到新的两组数据, 那么这两组数据如果不是完全匹配的,结果一定是WA。 如果这两组匹配了,去掉'\n','\t' 和' '前的不完全匹配则是PE。 如果去掉前的两组数据完全匹配,则是AC。 */ # include <stdio.h> # include <string.h> int main(void) { int T,count= 0; char start[10],end[10],str[50],str2[50],cstr[50]={'0'},cstr2[50]={'0'}; scanf("%d", &T); getchar(); //吸收回车符。 while(T--) { gets(start); gets(str); for(int i = 0; i < strlen(str); i++) { if((str[i] != '\n') && (str[i] != ' ') && (str[i] != '\t')) { cstr[count] = str[i]; count++; } } gets(end); while(end[0] == '\0') { count++; str[count] = '\n'; gets(end); } count = 0; gets(start); gets(str2); for(int j = 0; j < strlen(str2); j++) { if((str2[j] != '\n') && (str2[j] != ' ') && (str2[j] != '\t')) { cstr2[count] = str2[j]; count++; } } gets(end);//gets函数会把‘\n’转化成‘\0’ while(end[0] == '\0') { count++; str2[count] = '\n'; gets(end); } count = 0; //printf("%s\n", cstr); //printf("%s\n", cstr2); int flag = strcmp(cstr, cstr2); if(flag != 0) printf("Wrong Answer\n"); else if((strcmp(str, str2)) != 0) printf("Presentation Error\n"); else printf("Accepted\n"); } return 0; }
原文地址:http://blog.csdn.net/xu758142858/article/details/44098123