Помогите с несложной программой (С++)

 
0
 
ava
f4ust | 04.09.2015, 11:02
Задано множество из n строк. Создать в оперативной памяти таблицу, i-й элемент которой является числом, полученным в результате произведения цифр i-й строки. Строки должны включать хотя бы две цифры.

// буду благодарна, если объясните код как для тупой кастрюльки)
Kommentare (1)
ava
jsharp36 | 06.09.2015, 13:59 #
А точно на С++? Не на С? Сомневаюсь, т.к. обычно обучают такие простые задания без знаний специальных библиотек.

Вот код на С. (работать будет и на С++)

#include <stdio.h>

char input_array[100][100];
int result_array[100];

int char_to_number(char c)
{
    switch (c)
    {
    case '1': return 1;
    case '2': return 2;
    case '3': return 3;
    case '4': return 4;
    case '5': return 5;
    case '6': return 6;
    case '7': return 7;
    case '8': return 8;
    case '9': return 9;
    }

    return 0;
}

int get_digit_product(char* p)
{
    int result = 1;
    while (*p != '\0')
    {
        result *= char_to_number(*p);
        p++;
    }

    return result;
}

int main(void)
{
    int array_size, i;
    printf("input array size (less than 100)\n");
    scanf("%d", &array_size);

    for (i = 0; i < array_size; i++)
    {
        printf("input %d string: ", i);
        scanf("%s", &input_array[i]);
    }
    printf("\n");
    for (i = 0; i < array_size; i++)
    {
        result_array[i] = get_digit_product(input_array[i]);
    }

    for (i = 0; i < array_size; i++)
    {
        printf("product of '%s' = %d\n", input_array[i], result_array[i]);
    }

    return 0;
}


Написан очень тупо, всё делается "руками". На счет объяснений, с этим тяжелее, т.к. никогда не общался даже с умными кастрюлями. Я не знаю глубину ваших незнаний, может там надо объяснять по каждой строчке. Тогда в личке спрашивайте. Как по мне, код достаточно ясный, учитывая, что я не специалист в этом языке. 
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  jsharp36   f4ust
advanced
Absenden