输入n(n<20)个数,要求在屏幕上输出这n个数中互不相同的那些数,请问错误在哪?怎么修改?

输出的值不对,无论输入什么,输出都是b[0]=0

#include<stdio.h>
int main()
{
    int i=0,j=0,N,flag,m=0;
    float a[20],b[20];
    char ch;
    printf("Please input the number of N(<20)\n");
    scanf("%d",&N);
    printf("Please input %d character(s)\n",N);
   for(i=0;i<N;i++)
       scanf("%f",&a[i]);
   for(i=0;i<N;i++)
   {for(j=0;j<N;j++)
     {
         if(a[i]==a[j]&&(i!=j))
         {
             flag=1;break;
         }
         else if(a[i]==a[j]&&(i==j))
         {
             flag=0;break;
         }
         else
          flag=0;
   }}
   if(flag==0)
       {b[m]=a[i];
           m++;}
    for(i=0;i<m;i++)
        printf("b[%d]=%d",i,b[i]);
    return 0;
}