1.
#include#include #define maxn 1001 int main() { int h[maxn]; int n, x, i, j; while (~scanf("%d", &n))//需要输入的元素个数n { memset(h, 0, sizeof(h));//memset函数,引用源文件 ,将第一个参数中的sizeof(h)个数全部初始化为第二个参数 while (n--)//读取n个元素 { scanf("%d", &x);//读取到一个元素之后,将这个数放在h[x]中,通过打印x就能打印出这个数 h[x]++;//刚开始的时候元素全是0,如果放入一个元素,则这个位置的值加1,就能统计x的个数 } for (i = 0; i < maxn; i++)//开始打印数组,按从小到大 { if (h[i])//如果这个数是0,则该位置没有放数,若是非0,i,则有i个x { for (j = 0; j < h[i]; j++)//将所有元素打印出来 { printf("%d ", i); } } } printf("n"); } return 0; }
2.
//一个数组的范围是1到n,输入n个数,将没有1~n的打印出来 #include#include int main() { int h[11]; int x, i, n, m; memset(h, 0, sizeof(h)); scanf("%d", &n); m = n; while (n--) { scanf("%d", &x); h[x]++; } for (i = 1; i <= m; i++) { if (h[i]) { ; } else { printf("%d ", i); } } return 0; }



