这段代码为啥出错了?




#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int findmax(char str[],int len);
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        char str[1000]={'\0'};
        int len=0;
        char *flag1=NULL,*flag2=NULL;
        scanf("%d",&len);
        fflush(stdin);//冲垃圾
        gets(str);
        int  max=findmax(str,len);//找最大的字母的asll编码
        int distance='z'-max;
        for(int j=0;j<distance;j++)//给每个字母加x

        {
            for(int i=0;i<len;i++)
            {
                str[i]+=j;
            }
            flag1=strstr(str,"error");
            flag2=strstr(str,"warning");
            if(flag1!=NULL&&flag2!=NULL)
            {
                printf("%d\n",j);
                break;
            }
            else printf("0 error(s), 0 warning(s)\n");
        }
    }

}
int findmax(char str[],int len)//找最大值
{
  int  max=str[0];
  for(int i=0;i<len;i++)
  {
    if(str[i]>max)
    max=str[i];
  }

  return max;
}


img

img

gets(str);前加上个 fflush(stdin);