输出100以内素数,我的代码错在哪了

#include<stdio.h>
int main()
{
int a[101]={0},i,j,k=0,b[100];
for(i=2;i<=10;i++)
{for(j=2;ij<=100;j++)
a[i
j]=1;}
for(i=2;i<=100;i++)
{if(a[i]==0)
b[k++]=i;}
for(i=0;i<=100;printf("%d\t",b[i]));
if(i%10==0)
printf("\n");
return 0;}

int main()
{ 
    int isprime = 1;
    for (int i = 2; i < 101; i++)
    {
        isprime = 1;//要确保每次循环都要把这个值设置为1,不然上次循环的isprime会污染本次循环
        if (i == 2)
        {
            printf("%d\n", i);
            continue;
        }
        for (int j = 2; j < i; j++)
        {
            if (i%j == 0)
            {
                //不是素数
                isprime = 0;
                break;
            }
        }
        if (isprime == 1)
        {
            printf("%d\n",i);
        }
    }