Консультация № 66103
08.12.2006, 14:38
0.00 руб.
0 2 1
Здравствуйте!

Помогите с кодом программы для задания:
Нужно создать 2 рассортированных текстовых файла (упорядочивая информацию при
вводе - например буквы по алфавиту)и переписать их в третий файл в третий
упорядочивая информацию в нем сразу при перезаписи. Дополнительных массивов и
файлов не использовать
Очень большое спасибо!

Обсуждение

Неизвестный
08.12.2006, 14:47
общий
Я вижу этот вопрос уже ~3-й раз.Неужели никто так и не ответил?А если отвечали на этот вопрос, то ищите ответ ранее.
Неизвестный
11.12.2006, 04:32
общий
это ответ
Здравствуйте, ШИЮ!

Вот одна из реализаций задачи. Пусть и не самая удачная, но рабочая...

Приложение:
#include <stdio.h>#define MAX_OF_CHAR (char)127 FILE *in_1, *in_2, *out;int len_1, len_2, len;char ch;char get_char_of_index(int index) { rewind(in_1); rewind(in_2); int i = 0; char ch; do { if(i < len_1) fscanf(in_1, "%c", &ch); else fscanf(in_2, "%c", &ch); } while(i++ != index); return ch;}int main(int argc, char* argv[]) { if((in_1 = fopen("file_1.txt", "r")) == NULL) { printf("File "file_1.txt" reading error"); return 0; } if((in_2 = fopen("file_2.txt", "r")) == NULL) { printf("File "file_2.txt" reading error"); return 0; } if((out = fopen("output.txt", "w+")) == NULL) { printf("Unable to create file "output.txt""); return 0; } len_1 = 0; len_2 = 0; while(fscanf(in_1, "%c", &ch) != EOF) len_1++; while(fscanf(in_2, "%c", &ch) != EOF) len_2++; len = len_1 + len_2; int i, j; char min, last_min = 0; for(i=0; i<len; i++) { min = MAX_OF_CHAR; for(j=0; j<len; j++) { ch = get_char_of_index(j); if(ch > last_min && ch < min) min = ch; } for(j=0; j<len; j++) { ch = get_char_of_index(j); if(ch == min) fprintf(out, "%c", ch); } last_min = min; } fclose(in_1); fclose(in_2); fclose(out); return 0;}
Форма ответа