Условие задачи
В файле task.in задан массив размером не более 100 элементов.
Прочитать массив и удалить из него дубликаты элементов.
Результирующий массив записать в task.out.
#include <stdio.h>
#define SIZE 100
int arrayScan(FILE *in, int array[], int len) {
int i;
for ( i = 0; i < len && fscanf(in, "%d", &array[i]) > 0; i++ );
return i;
}
void arrayPrint(FILE *out, int array[], int len) {
len = len - 1;
for ( int i = 0; i < len; i++ ) {
fprintf(out, "%d ", array[i]);
}
fprintf(out, "%d\n", array[len]);
}
int arraySearch(int array[], int needle, int len) {
for ( int i = 0; i < len; i++ ) {
if ( array[i] == needle ) {
return i;
}
}
return -1;
}
int arrayUnique(int array[], int len) {
int index, needle;
index = 0;
for ( int i = 0; i < len; i++ ) {
needle = array[i];
if ( arraySearch(array, array[i], i) == -1 ) {
array[index] = needle;
index += 1;
}
}
return index;
}
int main() {
FILE *in = fopen("task.in", "r");
FILE *out = fopen("task.out", "w");
int array[SIZE];
int len = arrayScan(in, array, SIZE);
fclose(in);
arrayPrint(out, array, arrayUnique(array, len));
fclose(out);
return 0;
}