配列のユニーク処理

エロと風俗情報満載 どう抜く?

面白そうな題材を見つけました。

配列の要素に同じ要素が含まれていたら除去するという処理です。

#include "mylib.h"

int unique (int *num, int array_size) {
    int i,j,k;
    int uniq;
    for(j=i=0;i<array_size;++i){
        uniq = 0;
        for(k=0;k<i;k++){
            if ( num[k] == num[i] ) {
                uniq = 1;
                break;
            }
        }
        if ( !uniq ) {
            num[j++] = num[i];
        }
    }
    
    return j;
}

int main (void) {
    int num[] = { 1,4,4,5,6,3,8,9,3,2,1,9,0,2};
    int array_size;
    
    array_size = unique(num,ARRAY_NUM(num));
    printf_array("%d ",num,array_size);
    
    return 0;
}
$ main
1 4 5 6 3 8 9 2 0

mylib.h

できました。ちゃんと順番も崩さずに処理できています。