求大神帮忙看看错哪了,为什么错了

求大神帮忙看看哪里错了,为什么错了
求大神帮忙看看哪里错了,为什么错了,怎么改

我的代码
#include<stdio.h>
#include<string.h>

char str[1000];

int main()
{
int num=0;

scanf("%d",&num);
fflush(stdin);
for(int i=0;i<num;i++)
{
char s[101];
        gets(s);
        for(int j=0;j<strlen(s);j++)
{
if(s[j]>='A'&&s[j]<='Z')
{
s[j]+=32;
str[strlen(str)]=s[j];
}
else
            {
                if(s[j]>='a'&&s[j]<='z')
                {

  s[j]-=32;
  str[strlen(str)]=s[j];

                }

}


}
 str[strlen(str)]='#';

}
for(int i=0;i<strlen(str);i++)
{
if(str[i]!='#'&&str[i]>='A'&&str[i]<='z')
{
printf("%c",str[i]);
}
else
        {
            if(str[i]=='#')
            {
                 printf("\n");
            }
        }

}

return 0;
}

------解决思路----------------------
你是想说什么错了?输出正常啊!大写转换小写,或者小写转换大写都OK哦。
------解决思路----------------------
楼主以后注意代码缩进,以下供楼主参考:

#include<stdio.h>
#include<string.h>

char str[1000];

int main()
{
int num=0;
int i = 0;//兼容C99前的标准,不在for内定义变量 
int j = 0;
int  index = 0;//用index代替strlen提高效率 

scanf("%d",&num);
fflush(stdin);

for(i=0;i<num;i++)
{
char s[101]={0};//局部变量应初始化 
int  size = sizeof(s);

        //gets(s);
        if (NULL == fgets((char*)s,size,stdin))
        {
         printf("can't read!\r\n");
         continue;
        }
        
        printf("we get:%s\n",s);
        
        s[100]='\0';//防止溢出 
        
        for(j=0;j<strlen(s)&&index<sizeof(str)-1;j++)//防止str溢出 
{
if(s[j]>='A'&&s[j]<='Z')
{
s[j]+=32;
str[index]=s[j];
index++;
}
else if(s[j]>='a'&&s[j]<='z')
{
s[j]-=32;
str[index]=s[j];
index++;
}
}
  str[index]='#';
  index++;
}

for(i=0;i<index;i++)
{
if(str[i]!='#'&&str[i]>='A'&&str[i]<='z')
{
printf("%c",str[i]);
}
else if(str[i]=='#')
        {
            printf("\n");
        }
}

return 0;
}