Вывести количество слов, одинаковых по количеству букв. - 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 задачи. Подсчет одинаковых слов оставляю на тебя (тебе надо модифицировать программу; придумать, где хранить уникальные слова и как их сравнивать между собой (это несложно)) */
Объяснение кода листинга программы
- Объединение файлов заголовок и библиотека стандартного ввода/вывода
- Объявление переменных:
- int arr [_MAXWORD] - массив для подсчета слов
- c - текущий символ
- status - флаг, было ли найдено хотя бы одно слово
- fi - указатель на файл для чтения
- Чтение файла:
- Внешний цикл for для прохода по всем словам в файле
- Внутренний цикл while для пропуска начальных небуквенных символов
- Внутренний цикл for для подсчета слов и сохранения их количества в массиве arr
- Проверка длины слова и вылет из программы при превышении максимально допустимой длины слова
- Вывод результатов:
- Внешний цикл for для вывода количества слов, удовлетворяющих условию
- Внутренний цикл if для вывода номера слова и его количества
- Сообщение о том, что задача выполнена на 2/3
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д