Определить количество крема для украшения торта - C (СИ)
Формулировка задачи:
неразрешима задача на C
Различные символы требуют разного количества крема: большие буквы W и M - 10 грамм, все другие крупные буквы и цифры (кроме 1) - 7 грамм, большая буква I, цифра 1 и восклицательный знак! , А также все строчные буквы (кроме i, j и l) - 5 грамм, а строчные буквы и, j и l потребует 3 грамма крема. точки и зап'ятие не в счет
Входные данные: Строка символов, в котором записан текст, что украшать торт. Количество символов не превышает 255.
Результат: Одно целое число, равное суммарной массе крема, необходимой для изготовления заданного надписи.
Решение задачи: «Определить количество крема для украшения торта»
textual
Листинг программы
- #include <stdio.h>
- int creme_needed(const char* str) {
- static int weights[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0,
- 0, 7, 7, 7, 7, 7, 7, 7, 7, 5, 7, 7, 7, 10, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 10, 7, 7, 7, 0, 0, 0, 0, 0,
- 0, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
- int sum = 0;
- while (*str) {
- sum += weights[(unsigned char)*str++];
- }
- return sum;
- }
- int main(void) {
- printf("%d\n", creme_needed("Happy birthday, Vtulhu!"));
- return 0;
- }
Объяснение кода листинга программы
- В функции creme_needed происходит расчет количества крема для украшения торта на основе введенной строки.
- Массив weights содержит коэффициенты для каждой буквы.
- Значения массива отсортированы по возрастанию, кроме последних трех элементов, которые содержат суммарный вес для каждой группы символов.
- В функции main вызывается функция creme_needed с аргументом
Happy birthday, Vtulhu!
. - Функция creme_needed проходит по каждому символу в строке и суммирует соответствующие значения из массива weights.
- Результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д