素数数组,我想问一下哪里错了,怎么改

#include<stdio.h>
#include<math.h>
int main()
{ int i,j,k,n=0,m=0;
int a[]={1};
for(i=100;i<=300;i++){
for(j=2;j<=sqrt(i);j++){
if(i%j==0)
break;
}
if(i%j!=0){
a[m++]=i;
//printf("%d\n",i);
//printf("%d\n",a[m]);
}//printf("%d\n",a[m]);
}for(n=0;n=10;n++){
printf("%d\n",a[n]);
}
}

首先a数组要指定大小,你现在这么写相当于数组大小是1。
其次数组的初始值如果是1的话,需要用循环给每个元素赋值为1
最后的输出循环条件n=10是错误的,应该是n<m
参考一下:

int main()
{ 
    int i,j,k,n=0,m=0;
    int a[1000]={0};
    for(i=100;i<=300;i++)
    {
        for(j=2;j<=sqrt(i*1.0);j++)
        {
            if(i%j==0)
                break;
        }
        if(j>sqrt(i*1.0))
        {
            a[m++]=i;
        }
    }for(n=0;n<m;n++)
    {
        printf("%d\n",a[n]);
    }
    return 0;

}