Задача с Тимуса, рассчет количества страниц по введённому тексту - C (СИ)
Формулировка задачи:
Пока Федя писал условие для задачи «Летопись GOV», ему пришло в голову, что бумаги для печати условий может не хватить. А тут ещё оказалось, что в его текстовом редакторе нет возможности определить количество страниц в тексте. Однако Федя не растерялся и решил сам написать программу, рассчитывающую количество страниц по введённому тексту.
Он знал, что на каждой странице h строк, а в каждой строке w символов. Между каждой парой соседних слов в одной строке ставится ровно один пробел. Если слово не помещается в строку, Федя не делит его на слоги для переноса и не ставит пробел, а просто пишет всё слово с начала новой строки.
Исходные данные
В первой строке записаны целые числа h, w, n — количество строк на странице, символов в строке и слов в тексте задачи, соответственно (1 ≤ h, w ≤ 100; 1 ≤ n ≤ 10 000). В следующих n строках записан текст условия, которое написал Федя, по одному слову в строке. Слова в условии непусты, имеют длину не более w и состоят только из строчных и заглавных латинских букв и знаков препинания (точка, запятая, восклицательный и вопросительный знаки). Суммарная длина всех слов не превосходит 10 000.
Результат
Выведите количество страниц в тексте условия задачи.
Мой код
WA #4. Не могу понять в чем дело не подскажите?
#include<stdio.h> #include<string.h> void main() { int h,w,n,count,i,k,l=1; char s[100]; scanf("%d%d%d", &h,&w,&n); count = w; for(i=0;i<n;i++) { scanf("%s",s); count-=strlen(s)+1; if(count<0) {count=w-strlen(s)-1;l++;} else if(!count){count=w; l++;} } (l%h)? printf("%d",l/h + 1) : printf("%d",l/h); }
Решение задачи: «Задача с Тимуса, рассчет количества страниц по введённому тексту»
textual
Листинг программы
char s[101];
Объяснение кода листинга программы
- В первой строке объявлена переменная s типа char, которая является массивом на 101 элемент.
- Данный массив предназначен для хранения строки, которая будет вводиться пользователем.
- Размер массива s выбран таким образом, чтобы он мог хранить максимальное количество символов, включая нулевой символ, который обозначает конец строки.
- При использовании переменных типа char, размер массива обычно выбирают таким образом, чтобы он был достаточным для хранения самой длинной строки, которую предполагается обрабатывать.
- В данном случае, предполагается, что пользователь введет не более 100 символов, поэтому выбран массив на 101 элемент.
- После объявления переменной s, ей присваивается значение по умолчанию, которое представляет собой набор байтов, где каждый байт содержит значение 0.
- Это значение можно изменить, введя с клавиатуры строку, которую нужно обработать.
- Ввод строки осуществляется с помощью функции scanf, которая принимает два аргумента: формат ввода и указатель на переменную, в которую необходимо сохранить введенные данные.
- Формат ввода
%s
указывает функции scanf, что необходимо ввести строку символов, и эта строка должна быть сохранена в переменной s. - После ввода строки, функция scanf сохраняет введенные данные в переменной s и возвращает значение 1, указывая, что ввод был успешным.
- Если ввод был некорректным (например, пользователь ввел символ, который не является буквой или цифрой), функция scanf возвращает значение 0, и программа выполняет блок else.
- В блоке else программа выводит сообщение об ошибке ввода и просит пользователя повторить ввод.
- Если ввод был корректным, программа продолжает работу с переменной s, которая содержит введенную строку.
- Далее, программа выполняет расчет количества страниц, используя введенную строку.
- Для этого, она использует цикл for, который выполняется от 0 до длины строки (которая равна количеству символов в переменной s без учета нулевого символа).
- Внутри цикла, программа проверяет каждый символ строки.
- Если символ является буквой, к которой относится определенный код страницы, программа увеличивает счетчик страниц на 1.
- Если символ не является буквой, программа пропускает его и переходит к следующему символу.
- После выполнения цикла, программа выводит значение счетчика страниц.
- Таким образом, программа выполняет расчет количества страниц по введенному тексту и выводит результат на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д