一个c语言输出大写字母问题遇到bug无法解决,请求小伙伴援助

问题遇到的现象和发生背景

按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。
例FONTNAME and FILENAME
输出 FONTAMEIL

问题相关代码,请勿粘贴截图

#include<stdio.h>
#include<string.h>
int main( )
{int a,b,c,d,e,h,j,n,i,t=0;
char aa[10000],bb[10000];
gets(aa);
for(i=0;i<strlen(aa);i++)
{
if(aa[i]<=90&&aa[i]>=65)
{ bb[i]=aa[i];
for(n=0,j=0;n<i-1;n++)
{if(aa[i]==bb[n]);
j++;
}
if(j==0)
printf("%c",aa[i]);
t++;

}

}
if(t==0)
printf("Not Found");
}

运行结果及报错内容

不知道为什么只能输出不全的字符

我的解答思路和尝试过的方法
我想要达到的结果

if(aa[i]==bb[n]);
把分号删掉

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

int main()
{

    int  j, i = 0;
    char aa[10000], bb[10000];
    // 将数组初始化为0
    memset(aa, 0, 10000);
    memset(bb, 0, 10000);
    //gets(aa);
    // vs2022中使用gets_s读取字符串
    gets_s(aa,10000);
    // 标记找到的大写字母的索引
    int indexBB = 0;
    for (i = 0; i < strlen(aa); i++)
    {
        if (aa[i] <= 90 && aa[i] >= 65)
        {
            // 是否是已经找到的大写字母
            bool exist = false;
            for (j = 0;j< indexBB && j <strlen(bb);j++) {
                if (bb[j] == aa[i]) {
                    exist = true;
                    break;
                }
            }
            // 没有保存过,则将其保存到bb数组中,并且将索引加1
            if (!exist) {
                bb[indexBB] = aa[i];
                indexBB++ ;
            }
        }
    }
    // 输出结果
    if (strlen(bb) > 0) {
        for (i = 0; i < strlen(bb); i++) {
            printf("%c", bb[i]);
        }
    }
    else 
    {
        printf("Not Found");
    }
    return 0;

}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632