我试的自测和提交都没问题呀
#include <stdio.h> #include <string.h> void func(){ //解密函数 getchar(); //把输入缓冲区清空 char text[201]; gets(text); int len = strlen(text); for (int i = 0; i < len; ++i) { if(text[i] >= 'A' && text[i] <= 'E'){ text[i] += 21; } else if(text[i] >= 'F' && text[i] <= 'Z'){ text[i] -= 5; } } for (int i = 0; i < len; ++i) { printf("%c", text[i]); } printf("\n"); } int main(){ char beginText[15], endText[15]; //输密码之前和之后的句子 char start[] = "START"; char trueEnd[] = "ENDOFINPUT"; char end[] = "END"; while(scanf("%s", beginText) != EOF){ if (strcmp(beginText, trueEnd) == 0){ //如果是ENDOFINPUT则退出程序 return 0; } else if(strcmp(beginText, start) != 0){ //如果不是START则报错并退出程序 printf("ERROR!\n"); return 0; } else{ //是START则调用函数解密 func(); } scanf("%s", endText); if(strcmp(endText, end) == 0){ //结束语是END则继续 continue; } else{ //如果结束语不是END则报错并退出程序 printf("ERROR!\n"); return 0; } } return 0; }