题解 | #KiKi去重整数并排序#

KiKi去重整数并排序

http://www.nowcoder.com/practice/f59b914172b94c69a2b29ad0a1d9b1a7

#include<stdio.h>
#include<stdlib.h>
int compare(const void* a, const void* b)
{
    return (*(int*)a)-(*(int*)b);
}
int main()
{
    int n = 0;
    int arr[1000] = { 0 };
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    qsort(arr, n, 4, compare);//先升序排序,排序后有重复的数字
    for (int i = 0; i < n; i++)//开始遍历数组
    {
        if (arr[i] == arr[i + 1])//如果前后两数相等
        {
            for (int j = i; j < n; j++)
            {
                arr[j] = arr[j + 1];//删掉第一个相同数,然后其余数向前补齐空缺
            }
            n--;//数组总元素减一
            i--;//这时第i个数是原来第i+1的数,i--后重新检查新的第i个数
        }
    }
    for (int i = 0; i < n; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 14:11
很喜欢小米的新车,校招薪资每月22k,攒多久能买?
测试糕手手:别看工资,先看现金流存款。有50W存款以上再考虑,车是消耗品,选适合自己的重要。你有钱就当我没说过
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务