Форум программистов, компьютерный форум CyberForum.ru

Частота встречаемости символов в файле - C++

Восстановить пароль Регистрация
 
DJ_POLKAN
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 2
27.09.2013, 18:06     Частота встречаемости символов в файле #1
Написать программу которая подсчитывает частоту встречаемости символов в заданном текстовом файле.
На вход программе подается имя входного текстового файла input.txt
На выход в выходной файл output.txt вывести вещественное число - отношение количества вхождений этого символа в данный файл к длине всего файла

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <stdlib.h>
int main()
{
int mas[256];
FILE*f;
char symbol;
int i,j;
f=fopen("input.txt","r");
for (i=0;i<255;i++)
mas[i]=0;
puts(f);
int k=strlen(f);
for (i=0;i<255;i++)
for (j=0;j<k;j++)
if (symbol[i]=mas[j])
{
mas[symbol]++;
}
fclose(f);
for (i=0;i<255;i++)
{
if (mas[i]>0)               //где то тут должно быть написано f2=fopen("output.txt","w"); и записано значение отношения
printf( символ,кол-во)
}
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2013, 18:06     Частота встречаемости символов в файле
Посмотрите здесь:

C++ Статистика встречаемости символов в файле
Сортировка символов в файле C++
C++ Замена символов в файле
C++ Определить частоту встречаемости символов в строке
Подсчет символов в файле C++
C++ Подсчет символов в файле
Сделать подсчет частоты встречаемости последовательности символов АБВ в текстовом файле C++
Через HyperTerminal доступна частота COM порта 921600, но в приложении максимальная частота гораздо меньше C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
27.09.2013, 19:08     Частота встречаемости символов в файле #2
Цитата Сообщение от DJ_POLKAN Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
puts(f);
int k=strlen(f);
for (i=0;i<255;i++)
for (j=0;j<k;j++)
if (symbol[i]=mas[j])
{
mas[symbol]++;
}
каша-мала какая-то!
разве symbol это массив? Где вообще тут чтение из файла? Почему к файлу f пытаешься применить strlen(f)?
Вообще где тут хоть какая-то логика работы?

Короче,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int k=0;
int mas[256]={0};
FILE* f=fopen("input.txt","r");
while(char symbol=fgetc(f)!=EOF) {
  if(symbol>=0) {
      mas[symbol]++;
      k++;
  }
}
fclose(f);
float fraction=1.0f/k;
 
FILE* f2=fopen("output.txt","w");
for (unsigned char i=0;i<255;i++){
  if (mas[i]>0)              
    fprintf(f2, "%c - %f\n", i, mas[i]*fraction)
}
fclose(f2);
DJ_POLKAN
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 2
27.09.2013, 21:18  [ТС]     Частота встречаемости символов в файле #3
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Короче,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int k=0;
int mas[256]={0};
FILE* f=fopen("input.txt","r");
while(char symbol=fgetc(f)!=EOF) {
  if(symbol>=0) {
      mas[symbol]++;
      k++;
  }
}
fclose(f);
float fraction=1.0f/k;
 
FILE* f2=fopen("output.txt","w");
for (unsigned char i=0;i<255;i++){
  if (mas[i]>0)              
    fprintf(f2, "%c - %f\n", i, mas[i]*fraction)
}
fclose(f2);
Объясни плиз эту строчку:
fprintf(f2, "%c - %f\n", i, mas[i]*fraction);
%с - символьный, %f-вещественный, а зачем там "-"?

Добавлено через 1 час 8 минут
хд) не врубился) дошло) спасибо Kuzia domovenok
Yandex
Объявления
27.09.2013, 21:18     Частота встречаемости символов в файле
Ответ Создать тему
Опции темы

Текущее время: 01:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru