![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 02.12.2012
Сообщений: 6
|
![]()
Задание: Имеется три заданных текстовых файлов. Получить список имен файлов в порядке возрастания количества слов в них. Результат работы программы (вывод) поместить в отдельный текстовый файл
Считаю количество слов в файле, сортирую по убыванию, и записываю это в fail4 в порядке убывания. получается 8 4 2 а нужно грубо говоря вот так fail2 fail3 fail1 Недогоняю как это исправить. Вот код: do { printf("1-Файл 1\n 2-Файл 2\n 3-Файл 3\n 4-сортировка \n 5-запись результата в fail4 0-Выход\n"); menu=getch(); switch (menu) { case'1': { FILE *fp1 = fopen("fail1.txt","r"); if (NULL == fp1) { printf("\nОшибка открытия файла.\n"); break; } printf("\n Предложения: \n"); char str[1024]; str[0]='\0'; c=0; while (!feof(fp1)) { words[i][0]='\0'; fscanf(fp1, "%s",words[i]); printf ("%s ",words[i]); c++; } in1[0]=c; printf ("\nКоличество слов в fail1 - "); printf ("%d",in1[0]); c=0; fclose(fp1); printf("\n\n"); break; } case'2': { FILE *fp2 = fopen("fail2.txt","r"); if (NULL == fp2) { printf("\nОшибка открытия файла.\n"); break; } printf("\n Предложения: \n"); char str[1024]; str[0]='\0'; while (!feof(fp2)) { words[i][0]='\0'; fscanf(fp2, "%s",words[i]); printf ("%s ",words[i]); c++; } in1[1]=c; printf ("\nКоличество слов в fail2 - "); printf ("%d",in1[1]); fclose(fp2); printf("\n\n"); c=0; break; } case'3': { FILE *fp3 = fopen("fail3.txt","r"); if (NULL == fp3) { printf("\nОшибка открытия файла.\n"); break; } printf("\n Предложения: \n"); char str[1024]; str[0]='\0'; c=0; while (!feof(fp3)) { words[i][0]='\0'; fscanf(fp3, "%s",words[i]); printf ("%s ",words[i]); c++; } in1[2]=c; printf ("\nКоличество слов в fail3 - "); printf ("%d",in1[2]); fclose(fp3); printf("\n\n"); break; } case'4': { int fl=0; do { fl = 1; for (int i = 0; i<2; ++i) { if ( in1[i] < in1[i+1] ) { int d=in1[i]; in1[i]=in1[i+1]; in1[i+1]=d; fl=0; }} }while (!fl); printf("Результат \n"); for (i=0; i<3; ++i) { printf("%d \n", in1[i]); } break; } case'5': { fp4 = fopen("fail4.txt","w"); for (i=0; i<3; ++i) { fprintf(fp4, "%d \n", in1[i]); } printf ("\nФайл успешно записан"); fclose (fp4); } } } while(menu!='0'); return 0; } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно исправить ошибку в программе работы с файлами. | ameks94 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 25.11.2012 23:36 |
C++ Структуры и работа с файлами(исправить программу) | scrinn | Помощь студентам | 3 | 04.06.2012 18:56 |
Pascal (Работа с файлами) как исправить ошибку | Natsu | Помощь студентам | 9 | 28.02.2010 20:24 |