编写一个程序,去掉数组a={1,2,3,4,4,7,1,6,2}中的重复元素,得到一个新的数组b?

如题所述

#include <stdio.h>

#include <stdlib.h>

int *getArray(const int array[],int len,int *length){

   int *newArray = malloc(sizeof(int));

   *newArray = array[0];

   int size = 1;


   for(int i = 1; i<len;i++){

       int count = 0;

       for(int j = 0;j<size;j++){

           if(*(newArray+j)==array[i])

               count++;

       }

       if(count==0){

           newArray = realloc(newArray,sizeof(int)*(size+1));

           *(newArray+size)=array[i];

           size++;

       }

   }

   *length = size;

   return newArray;

}

int main(){

    int size = 0;

    int a[]={1,2,3,4,4,7,1,6,2};

    int *b = getArray(a,8,&size);

    for(int i = 0;i<size;i++){

        printf("%d",*(b+i));

    }

    return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-13

#include<stdio.h>

#define N 9

void main() { int a[N]={1,2,3,4,4,7,1,6,2},b[N],n,i,j,s;

b[0]=a[0];

for ( i=n=1;i<N;i++ ) {

  s=0; for ( j=0;j<n;j++ ) if ( a[j]==a[i] ) { s=1;break; }

  if ( s==0 ) { b[n]=a[i]; n++; }

}

for ( i=0;i<n;i++ ) printf("%d ",b[i]); printf("\n");

}

本回答被网友采纳
相似回答