Вывести количество слов, одинаковых по количеству букв. - C (СИ)

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

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

Люди, помогите написать прогу, которая выводит количество слов, одинаковых по количеству букв и (необязательно)количество одинаковых слов. С заранее спасибо

Решение задачи: «Вывести количество слов, одинаковых по количеству букв.»

textual
Листинг программы
#include <stdio.h>
#define _MAXWORD 100
#define MESSAGE "\n ***SYSTEM :: TOTAL ERROR :: TOO LONG WORD \n"
 
main ()
{
int arr [_MAXWORD], c, status = 0;
FILE* fi = fopen ("file_for_reading_in_your_directory.txt", "r");
 
/* С файлом быстрее, чем через сканф. Тебе нужно создать файл блокнота с одноименным названием (кот. явл.
аргументом fopen ()) в той же директории, где лежит exe*/
 
 
 
for (int i = 0; i < _MAXWORD; i++) // обнуление счетчиков
    arr [i] = 0;
 
for (int count = 0; (c = getc (fi)) != EOF; count = 0)
    {
    while (c  == ' ' || c == '\n' || c == '\t') c = getc (fi); // пропуск начальных НЕбукв
    for (; c != ' ' && c != '\t' && c != '\n' && c != EOF; count++)
        {
        c = getc (fi);
        status = 1;      // было ли хоть одно слово
        }
 
    if (count > _MAXWORD)
        {
        printf (MESSAGE);
        exit (0);
        }
 
    if (status) arr [count - 1] ++;
    }
 
for (int i = 0; i < _MAXWORD; i++) // Результат
    if (arr [i]) printf ("[%d] - number is %d \n", i + 1, arr [i]);
}
 
/*!
    Это 2/3 задачи. Подсчет одинаковых слов оставляю на тебя (тебе надо модифицировать программу;
придумать, где хранить уникальные слова и как их сравнивать между собой (это несложно))
*/

Объяснение кода листинга программы

  1. Объединение файлов заголовок и библиотека стандартного ввода/вывода
  2. Объявление переменных:
    • int arr [_MAXWORD] - массив для подсчета слов
    • c - текущий символ
    • status - флаг, было ли найдено хотя бы одно слово
    • fi - указатель на файл для чтения
  3. Чтение файла:
    • Внешний цикл for для прохода по всем словам в файле
    • Внутренний цикл while для пропуска начальных небуквенных символов
    • Внутренний цикл for для подсчета слов и сохранения их количества в массиве arr
  4. Проверка длины слова и вылет из программы при превышении максимально допустимой длины слова
  5. Вывод результатов:
    • Внешний цикл for для вывода количества слов, удовлетворяющих условию
    • Внутренний цикл if для вывода номера слова и его количества
    • Сообщение о том, что задача выполнена на 2/3

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


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

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

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