#include <stdio.h>
#define N 20
#include <stdlib.h>

int num(const void *a, const void *b)
{return *((int *)a) - *((int *)b); }

void main()
{int i, a[N];

for(i=0; i<N; i++) 
       {printf("何かデータを入力してください:");
scanf("%d",&a[i]);
if(a[i]<=0)
              {break; }
}
qsort(a, N, sizeof(int), num);
printf("\n結果\n");
for(i=0; i<N; i++)
{printf(" %d,",a[i]);}
}

↑で、負の数を入力すると入力を中止し、
今までの入力された正の数を出力したいんですけどできません。
どこを直せば(追加すれば)いいですか?