Исправить ошибки в программе частотного анализа текста - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте , я студент, пытаюсь написать программу по следующему заданию: 5. Дан файл, содержащий текст. Провести частотный анализ текста, т. е. указать (в процентах), сколько раз встречается та или иная буква код написал по всем методическим указанием, но выбивает много ошибок, помогите исправить , буду очень благодарен вот мой код:
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include <string.h>
#include <locale.h>
#include <Windows.h>

void find(FILE*, char*);
int main()
    char name[50];
    int len;   
    FILE *fp;
    setlocale (LC_ALL, "Rus");
    
    if(argc<2){
            printf("Введите имя файла без розширения (розширение файла должно быть .txt)\n");
            exit(NULL);
    }
    strcpy(name,argv[1]);
    strcat(name,".txt");
    if(!fopen (name,"r")){
        printf("Файл невозможно открыть. Повторите заново!");
        exit(NULL);
    }
    fp=fopen (name,"r");
    len=filelength(fileno(fp));  //количество символов в файле
    if(!len){
        printf("Файл пустой! Проверьте содержание файла\n");
        exit(NULL);
    }
    printf("Указать (в процентах), сколько раз встречается та или иная буква.\n");
    find(fp,name);
    fclose (fp);
    return 0;
}
void find(FILE *fp, char name[])
     {
         int i,j,m;
         FILE *Out;
         float len;
         char name1[50];
         char eng[]={"abcdefghijklmnopqrstuvwxyz"};
         char ENG[]={"ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
         char rus[]={"абвгдеёжзийклмнопрстуфхцчшщъыьэюя"};
         char RUS[]={"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"};
         int numben[2][27];
         int numbru[2][33];
         char ch;
         len=filelength(fileno(fp));
         len=len/100;
         for(i=0;i<2;i++){
            for(j=0;j<26;j++){
                numben[i][j]=0;
            }
         }
        for(i=0;i<2;i++){
            for(j=0;j<33;j++){
                numbru[i][j]=0;
            }
        }
            for(i=0;i<50;i++){
        if(name[i]=='.'){
            name1[i]=NULL;
            break;
        }
        name1[i]=name[i];
    }
    strcat(name1,".out");
    Out = fopen(name1,"w");
        printf("Латинница\n");
             for(i=0;i<26;i++){
                rewind(fp); /// функция rewind() выполняет "перемотку" (rewind) файла
                while(!feof(fp)){
                    ch=fgetc(fp);
                    if(ferror(fp)); {
                    perror(" Ошибка при работе с файлом ");
 
                     }
                    if(eng[i]==ch){
                        numben[0][i]++;
                    }
                    if(ENG[i]==ch){
                        numben[1][i]++;
                    }
                 }
                printf("%c:%f%%",eng[i],(float)(numben[0][i]/len));
                fprintf(Out,"%c:%f%%",eng[i],(float)(numben[0][i]/len));
                printf("    %c:%f%%\n",ENG[i],(float)(numben[1][i]/len));
                fprintf(Out,    "%c:%f%%\n",ENG[i],(float)(numben[1][i]/len));
 
             }
             printf("Кириллица\n");
             for(i=0;i<33;i++){
                rewind(fp);
                while(!feof(fp)){
                    ch=fgetc(fp);
                    if(ferror(fp)); {
                     m = (ferror(fp)); 
                      perror(" Ошибка при работе с файлом ");
 
                     }
                    if(rus[i]==ch){
                        numbru[0][i]++;
                    }
                    if(RUS[i]==ch){
                        numbru[1][i]++;
                    }
                 }
                printf("%c:%f%%",rus[i],(float)(numbru[0][i]/len));
                fprintf(Out,"%c:%f%%",rus[i],(float)(numbru[0][i]/len));
                printf("    %c:%f%%\n",RUS[i],(float)(numbru[1][i]/len));
                fprintf(Out,"   %c:%f%%\n",RUS[i],(float)(numbru[1][i]/len));
 
             }
}
             }
}

Решение задачи: «Исправить ошибки в программе частотного анализа текста»

textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.714 из 5
Похожие ответы