Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz

18.04.2009, 20:54
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
Блок схема.
Мужики вери нид хэлп(выручайте короче  )...
Завтра нужно сдавать курсовик, а эти блок-схемы вообще забыл как рисовать...
Вот постановка задачи:
Код:
Написать программу, которая открывает текстовый файл-список, содержащий имена файлов по одному на строке. Программа подсчитывает количество предложений во всех файлах и выводит предложения в другой файл по одному на строке в порядке уменьшения длины.
Вот сам код:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
char *filename;
char *tmp_str;
char *result_str;
FILE *open_f;
FILE *result_f;
char **str_array;
int i, j, count, ind, max, length, jlen;
FILE *file_list;
FILE *result;
char list_path[256];
void rus (char*src)
{
char dst[256];
CharToOem(src,dst);
printf("%s\n", dst);
}
int main(int argc, char *argv[])
{
filename = (char*)malloc(256);
tmp_str = (char*)malloc(1024);
result_str = (char*)malloc(1024);
str_array = (char**)malloc(8192);
i = 0; j=0; count = 0;
rus("Введите имя файла содержащего пути к другим файлам:");
scanf("%s", list_path);
file_list = fopen(list_path, "r");
if(!file_list)
{
perror("Error opening file\n");
return -1;
}
while(!feof(file_list))
{
fscanf(file_list, "%s\n", filename); // \n - to avoid the new line symbol
printf("Opening %s\n", filename);
open_f = fopen(filename, "r");
if(!open_f)
{
perror("Error opening file\n");
return -1;
}
//read files by word
//strcat combines words to expressions
strcpy(result_str,""); //clear string
while(!feof(open_f))
{
fscanf(open_f, "%s", tmp_str);
if((strchr(tmp_str,'.') == NULL) && (strchr(tmp_str,'!') == NULL) && (strchr(tmp_str,'?') == NULL))
{
strcat(result_str, tmp_str);
strcat(result_str, " ");
continue;
}
else
{
strcat(result_str, tmp_str);
}
str_array[i] = (char*)malloc(strlen(result_str));
strcpy(str_array[i++], result_str);
strcpy(result_str,""); //clear string
}
fclose(open_f);
}
fclose(file_list);
count = i;
for(j=0;j<count;j++)
rus(str_array[j]);
printf("\n\n\n\n");
for(i=0;i<count;i++)
{
ind = i; length = strlen(str_array[i]); max =0;
for(j=i+1;j<count;j++)
{
jlen = strlen(str_array[j]);
if(jlen > length && jlen > max)
{
ind = j;
max = jlen;
}
}
if(ind != i)
{
strcpy(tmp_str, str_array[ind]);
strcpy(str_array[ind], str_array[i]);
strcpy(str_array[i], tmp_str);
}
}
for(j=0;j<count;j++)
rus(str_array[j]);
rus("Запись в результирующий файл");
result = fopen("result_file.txt","w");
for(j=0;j<count;j++)
{
fprintf(result, "%s\n", str_array[j]);
free(str_array[j]);
}
fclose(result);
return 0;
}
Помогайте рисовать...
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|