新人求解问题出在哪?

输出第一个不重复的字符

 #include <stdio.h>
#include<string.h>
int main()
{
    int i,j,l,t=0,m=0,c=0;
    char str[100];
    scanf("%s",str);
    l=strlen(str);
    while(c==0)
    {
       for(i=0;i<l-m;i++)
        {
            for(j=i+1;j<l-m;j++)
                {
                    if(str[i]==str[j])
                        t=t+1;
                        break;
                }
            if(t==0)
                c=i;
        }
    }
    if(t!=0)
    {
        printf("no");
    }
    else
        printf("%c",str[c]);
    return 0;
}

改过的程序

 #include <stdio.h>
#include<string.h>
int main()
{
    int i,j,l,t;
    char str[100];
    scanf("%s",str);
    l=strlen(str);
       for(i=0;i<l;i++)
        {
            t=0;
            for(j=i+1;j<l;j++)
                {
                    if(str[i]==str[j]&&i!=j)
                        {
                            t=1;
                            break;
                            }
                }
            if(t==0)
               {
                   printf("%c",str[i]);
                   break;
               }
        }
    if(t==1)
    {
        printf("no");
    }
    return 0;
}