C语言c++数组练习

输入n(<20)个互不相同的正整数并保存在数组中,找到最小元素并删除它(原位置值置0),输出删除后的数组
样例输入:
9
1 2 3 4 5 6 7 8 9
样例输出:
0 2 3 4 5 6 7 8 9
求各位帮忙看看!


#include<stdio.h>
int main()
{
    int a[20];
    int n,max,num=0;
    scanf("%d", &n);
    for (int i = 0; i < n;i++)
        scanf("%d", &a[i]);
    max = a[0];
    for(int i=0;i<n;i++)
            if (a[i] < max)
            {
                max = a[i];
                num = i;
            }
    a[num] = 0;
    for (int i = 0; i <  n; i++)
        printf("%d\t", a[i]);
    return 0; 
}

有很多方法,可以先排序,在删除,也可以直接求最小值,然后对最小值删除