C语言输出数组中的最小值及其下标,为什么下标输出错误

#include<stdio.h>
int main()
{
int n,i,j;
int a[100];
a[j]=a[0];
printf("请输入数组元素个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}

            for(i=1;i<n;i++)
            {
                if(a[i]<a[j])
                {
                a[j]=a[i];
                j=i;
                
                
                }
            }
                printf("最小值为:%d,下标为:%d",a[j],j);

j没有初始化为0