C语言形参数组删除排序

定义函数 int fun(int a[],int n),形参数组 a 中的数组元素值已按从小到大的顺序排序,fun 函数的功能是删除形参一维数组中所有相同的数,使之只剩下一个,函数返回删除 后数组中数据的个数。main 函数进行 fun 函数功能的测试。
n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数

你题目的解答代码如下:

#include <stdio.h>
int fun(int a[],int n)
{
    int m=1,i;
    for(i=1;i<n;i++)
        if (a[i]!=a[i-1])
            a[m++] = a[i];
    return m;
}

int main()
{
    int a[] = {1,2,2,3,4,4,4,5}, i,m;
    m=fun(a,8);
    for(i=0;i<m;i++)
        printf("%d ",a[i]);
    return 0;
}

如有帮助,望采纳!谢谢!

双重循环遍历搜索每个整数,相同则删除后一个

 int fun(int a[],int n)
{
    int m=1;
    int prev = a[0];
    for(int i=1;i<n;i++)
    {
        if(a[i] == prev)
            continue;
        else
        {
            a[m++] = a[i];
            prev = a[i];
        }
    }
    return m;
}
int main()
{
    int a[10];
    for(int i=0;i<10;i++)
        scanf("%d",&a[i]);
    printf("%d",fun(a,10));
    return 0;
}