ordenação por contagem

to tendo problemas pra ordenar qdo os valores (que se encontram num arquivo com 250 linhas) comparados sao iguais no resultado ta saindo lixo
verifiquem esse código pra ver se a lógica está certa

int main()
{
  int mat_func[250],mes_trab[250],vet_mes_ord[250],vet_mat_func_ord[250];
  int pos,i=0,j=0;
  FILE *arq;
  system("date");
  arq=fopen("lista_func.txt","r");
  if (!arq)
  {
     printf("Erro abertura de arquivo");
  }
  else
  {
  for(i;i<250;i++)
     fscanf(arq,"%d %d", &mat_func[i], &mes_trab[i]);
for (i=0;i<250;i++)
{
  pos=0;
  for (j=0;j<250;j++)
    if (mes_trab[j] < mes_trab[i])
      pos=pos + 1;
  vet_mat_func_ord[pos]=mat_func[i];
  vet_mes_ord[pos]=mes_trab[i];
}

  for(i=0;i<250;i++)
     printf("\n FUNCIONÁRIO NÚMERO: %d, TRABALHOU: %d MESES", vet_mat_func_ord[i], vet_mes_ord[i]);
  }
return 0;
}

Este código está em C, não que não possamos ajudar, mas coloque na seção offtopic, a seção Java Básico pe voltado apenas para dúvidas comuns em Java. Abraço.

Tenho dúvida qto à lógica, a linguagem não importa (pode ser portugol). Se estiver no local errado, por favor mova para mim para o local correto.