Из файла f получить файл g, исключив повторные вхождения чисел - C (СИ)
Формулировка задачи:
парни нужна помощь!!!!!!!!!
есть задание:
Заполнить файл f целыми числами, полученными с помощью генераторра случайных чисел. Из файла f получить файл g, исключив повторные вхождения
чисел. Порядок следования чисел сохранить.
немогу исключив повторные вхождения
чисел.
#include <stdio.h> #include <stdlib.h> #include <locale.h> const int ARRSIZE = 100; int compare(int a, int*b); int k = 0; int main(int argc, char *argv[]) { setlocale(LC_CTYPE,"rus"); int arrPut[ARRSIZE],arrIn[ARRSIZE]; int newArr[ARRSIZE]; int i = 0,j = 0,k = 0; srand(time(NULL)); for(i=0;i<ARRSIZE;i++){ arrPut[i] = rand() %99; } FILE *f; f = fopen("f.txt","wt"); for(i=0;i<ARRSIZE;i++){ fprintf(f,"%d ", arrPut[i]); } fclose(f); f = fopen("f.txt","r"); printf("f!\n\n"); if(f == 0){ printf("Cannot open file!\n"); } for(i=0;i<ARRSIZE;i++){ fscanf(f,"%d", &arrIn[i]); printf("%d ", arrIn[i]); } fclose(f); printf("\n\n\n"); for(i=0;i<ARRSIZE;i++){ newArr[i] = NULL; } newArr[0] = arrIn[0]; printf("%d ", newArr[0]); /**/ while(i<ARRSIZE){ if(compare(arrIn[i],&newArr)){ newArr[j+1] = arrIn[i]; j++; } i++; } for(i=0;i<ARRSIZE;i++){ if(newArr[i] != NULL)printf("%d ", newArr[i] ); } system("pause"); return 0; } int compare(int a,int* b){ for(k=0;k<ARRSIZE;k++){ if(a == b[k]){ return 0; }else{ return 1; } } }
Решение задачи: «Из файла f получить файл g, исключив повторные вхождения чисел»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <assert.h> //----------------------------------------------------------------------------- int Random(int min, int max) { return (rand() % (max - min + 1)) + min; } //----------------------------------------------------------------------------- void PutRandomDigits(FILE* f, unsigned count, int min, int max) { while (count--) { fprintf(f, "%d ", Random(min, max)); } } //----------------------------------------------------------------------------- int Find(FILE* f, unsigned value) { int isFind = 0; int buff; rewind(f); while ((fscanf(f, "%d", &buff) == 1) && (isFind = (buff == value)) == 0) { ; } return isFind; } //----------------------------------------------------------------------------- void PushBack(FILE* f, unsigned value) { fseek(f, 0, SEEK_END); fprintf(f, "%d ", value); } //----------------------------------------------------------------------------- void FromTo(FILE* from, FILE* to) { int buff; while (fscanf(from, "%d", &buff) == 1) { if (!Find(to, buff)) { PushBack(to, buff); } } } //----------------------------------------------------------------------------- int main(int argc, char* argv[]) { if (argc != 3) { fprintf(stderr, "Usage: %s <FILE1> <FILE2>\n", argv[0]); return EXIT_FAILURE; } FILE* f = fopen(argv[1], "w"); FILE* g = fopen(argv[2], "w"); assert(f && g); srand(time(NULL)); PutRandomDigits(f, 100, 0, 20); fclose(f); fclose(g); f = fopen(argv[1], "r"); g = fopen(argv[2], "a+"); FromTo(f, g); fclose(g); fclose(f); return EXIT_SUCCESS; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д