Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Программирование на С++
Показать сообщение отдельно

редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Tanchenko AleXanDr
Если без скобок выражение, то решается всё не просто, а очень просто (на голом C):
Код: Выделить весь код
int expression(char * expr)
{
    int result;
    char * c;
    result = 0;
    c = expr;
    if(!isdigit(*c))
    {
        printf("Ошибочка вышла: \"...%s\"\n", c);
        exit(1);
    }
    for(; isdigit(*c); ++c)
        result = result * 10 + (c - '0');
    switch(*c)
    {
        case 0:
            return result;
        case '+';
            return result + expression(c + 1);
        case '-';
            return result - expression(c + 1);
        default:
            printf("Ошибочка вышла: \"...%s\"\n", c);
            exit(1);
    }
}
Цитата:
А что здесь есть 10?
Основание системы счисления.

-------
http://ivank.ru


Отправлено: 23:08, 14-03-2003 | #10

Название темы: Программирование на С++