为啥小弟我素数排的序不对

为啥我素数排的序不对啊
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int k;
int plume(int i)
{
int j;
for (j=2;j<i;j++)
  if (i%j==0)
    break;
if (j==i)
  {  printf("%3d ",i);
    k=1;}
    return i;
}
void main(int a)
{
 int a[100],i,j=0,s,m,b[100];
 srand((unsigned)time(NULL));
 for (i=0;i<100;i++)
   {
    a[i]=rand()%4000+1000;
    printf("%3d ",a[i]);
   }
   printf("––––––––––\n");
   for (i=0;i<100;i++)
        { 
            plume(a[i]);
            
            if (k==1)
             {
              b[j]=a[i];
               j++;
              }
              m=j;
             }
             printf("–––––––––\n");
         for (i=0;i<m-2;i++)
           for (j=0;j<m-2-i;j++)
              if (b[j]>b[j+1])
            {
             s=b[j];
             b[j]=b[j+1];
             b[j+1]=s;
            }
            for (i=0;i<j;i++)
              printf("%3d ",b[i]);
}
            
          
            
             
       
------解决方案--------------------

#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <algorithm>

using namespace std;
int k;
int plume(int i)
{
int j;
for (j=2;j< i;j++)
if (i%j==0)
break;
if (j==i)
{
printf("%3d ",i);
k=1;
}
return i;
}

int main()
{
int a[100],i,j=0,s,m,b[100];
srand((unsigned)time(NULL));
for (i=0;i<100;i++)
{
a[i]=rand()%4000+1000;
printf("%3d ",a[i]);
}
printf("––––––––––\n");
for (i=0;i<100;i++)

k = 0;  /*重置*/
plume(a[i]);

if(k==1)
{
b[j]=a[i];
j++;
}
//m=j;
}
printf("–––––––––\n");

for (i=0;i<j;i++)
for (m=0;m<j-i-1;m++)
if (b[m]>b[m+1])
{
s=b[m];
b[m]=b[m+1];
b[m+1]=s;
}

      //sort(b,b+j);  快排,测试排序
for (i=0;i<j;i++)
printf("%3d ",b[i]);
return 0;
}

------解决方案--------------------
百度 c语言金典100例 这个新手还是可以看看的