int main() { int n = 0; int arr[1001] = {0}; int tmp = 0; scanf("%d",&n); int i = 0; for(i=0;i<n;i++) { scanf("%d ",&tmp); arr[tmp] = tmp; } for(i=0;i<1001;i++) { if(arr[i] != 0) printf("%d ",i); } return 0; } 输入的是1~1000的数字,tmp不仅是数组下标-1也是我们输入的数字,然后因为数组被初始化为0;直接将不是0的数字打印出来,顺序是从小到大。