Определить количество крема для украшения торта - 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;
}

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

  1. В функции creme_needed происходит расчет количества крема для украшения торта на основе введенной строки.
  2. Массив weights содержит коэффициенты для каждой буквы.
  3. Значения массива отсортированы по возрастанию, кроме последних трех элементов, которые содержат суммарный вес для каждой группы символов.
  4. В функции main вызывается функция creme_needed с аргументом Happy birthday, Vtulhu!.
  5. Функция creme_needed проходит по каждому символу в строке и суммирует соответствующие значения из массива weights.
  6. Результат выводится на экран.

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


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

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

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