编写程序,删除有序数组a[]={2,2,2,3,3,4,4, 5,6,6,6,6,7,7,8, 9,9,10,10,10}中所有相同的元素,使之只剩一个

#include
int main()
{
int a[]={2,2,2,3,3,4,4, 5,6,6,6,6,7,7,8, 9,9,10,10,10},i;
for(i=0;i<20;i++)

{
    if (a[i]=a[i+1])
    
    printf("%d ",a[i]);

}
 

return 0;
}

我觉得新建一个数组比较好
因为你这个数组是有序的
新建一个数组b,num(b现在的下标,初始值为0),如果为空,或者与b[num-1]不相等,就把这个数字加入到b数组里面来
不知道你听明白没
有用记得采纳呐!

供参考:

#include<stdio.h>
int removeDuplicates(int* nums, int numsSize) 
{
    int i, j;
    for (i = 0; i < numsSize - 1;) {
        if (nums[i] == nums[i + 1]) {
            for (j = i + 1; j < numsSize - 1; j++) {
                nums[j] = nums[j + 1];
            }
            numsSize--;
        }
        else
            i++;
    }
    return numsSize;
}

int main()
{
    int a[]={2,2,2,3,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n;
    n = sizeof(a)/sizeof(a[0]);
    n = removeDuplicates(a,n);
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
    return 0;
}