Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2012, 00:36   #21
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

Я все таки не понимаю, почему при делении 4/2 получается 1, если кто заметил ошибку, отпешитесь пожалуйста.
RussDragon вне форума Ответить с цитированием
Старый 27.10.2012, 12:30   #22
Aventus
Пользователь
 
Аватар для Aventus
 
Регистрация: 20.02.2012
Сообщений: 42
По умолчанию

Считаю что тебе не стоит хвастать начальным знанием яп. Выучи до нормального уровня , вот тогда и покажи нам свои кодотрюки. А сейчас это кусок жидкой субстанции.
Aventus вне форума Ответить с цитированием
Старый 27.10.2012, 16:27   #23
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

А кто хватается? Мне важно мнение других, раньше если бы мне не посоветовали использовать switch, я может бы не скоро начал его использовать.
RussDragon вне форума Ответить с цитированием
Старый 27.10.2012, 17:05   #24
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
почему при делении 4/2 получается 1
Почему отладчиком не пройдешься по коду?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.10.2012, 18:41   #25
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

Пройдусь сегодня, да, добавлю к тому почему я выкладываю даже маленький кол на оценку:
Каждый написанный мной код это опыт, но одно дело быть быдлокодером который в коде с бубном шаманит, а другое дело программистом. Выкладывая код я всегда смотрю на то, что скажут люди, они могут сказать что в какой-то части можно было сократить, где то поменять на другое и т. д.
Постами с оценкой вы указываете мне что подтянуть, что лучше не использовать, но когда люди пишут посты "Зачем ты хвастаешься своим слабеньким кодом", я лишь удивляюсь, на сколько людям все равно на других, раз они даже сообщения и назване темы прочитать не могут.
RussDragon вне форума Ответить с цитированием
Старый 27.10.2012, 18:44   #26
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
смотрю на то, что кажут люди, они могут сказать что в какой-то части можно было сократить, где то поменять на другое и т. д.
Как по мне этот код стоит менять полностью. Подход к решению - стратегию выбрать другую.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.10.2012, 19:04   #27
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

А если быть точным то что лучше изменить? Запись символов?
RussDragon вне форума Ответить с цитированием
Старый 27.10.2012, 20:27   #28
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если быть точным, то мне, как Паскалисту, глаза режет вот это:
Код:
int CALCULATE(char n1, char n2, char n3)
...
b = n1 + n3;
Арифметические выражения в моем понимании должны работать с числами, а не с символами. Я конечно понимаю что это Си, и тут все можно, но все же я бы так не делал. Работаешь с числами - будь добр типы переменных задавай соответствующие.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.10.2012, 21:14   #29
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

Да я потом уже запутался, поэтому и задал Char.
UPD:
Стоп, я забыл, последний версия вот:
Код:

#include <stdio.h>
int CALCULATE(int, int, int);

int main()
{
    int c, i, g;
    int calc[3];
    for (i = 0; i<4; ++i) {
        calc[i] = 0;
    }
    
    g = 0;
    
    while((c = getchar()) != EOF)
    {
    
        if (c >= '0' && c <= '9') {
            if(calc[g] == 0){
            calc[g] = c;
            g++;
                
            }
        }
        else if(c == '-' || c == '+' || c == '*' || c == '/')
        {
            if(calc[1] == 0)
            {
            calc[1] = c;
            g++;
            }
        
        }
        
    }
    
    
    
    printf("calc0 %c, calc1 %c, calc2 %c\n", calc[0], calc[1], calc[2]);
 CALCULATE(calc[0], calc[1], calc[2]);
    return 0;
}


int CALCULATE(int n1, int n2, int n3) {
    double b;
    n1 -= '0';
    n3 -= '0';
    
    switch (n2) {
        
        case '+':
            b = n1 + n3;
            break;
        case '-':
            b = n1 - n3;
            break;
        case '*':
            b = n1 * n3;
            break;
        case '/':
            b = n1 / n3;
            break;
    }
    return printf("%.0f", b);
    
}
RussDragon вне форума Ответить с цитированием
Старый 27.10.2012, 22:06   #30
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Допустим. Тогда меняй программу на ввод выражения в строку, оканчивающуюся не на CTRL+Z а на Enter клавишу.
И как быть с числами более 9? Врядли с ними ты такие превращения так вот просто сможешь устроить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц