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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2012, 16:00   #11
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Просто любопытно. Почему '+' принимается в функции как int? Если код вашей функции будет скрыт от меня, я никогда не догадаюсь, что в нее надо передать, тем более, что имена принимаемых переменных не отражают своей сути. А еще мне не понятно зачем возвращать int, если вы возвращаете printf("%d\n", b); Ну нелогично же блин... Опять же, не видя кода функции я подумаю, что она возвращает число и выведу на печать его после вызова этой функции. И выведется оно два раза. А я буду голову ломать, откуда оно у меня там дважды взялось.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 21.10.2012, 16:10   #12
ArmanPrestige
Главное желание.
Форумчанин
 
Регистрация: 28.11.2011
Сообщений: 122
По умолчанию

Зря столько ифов. использовал бы switch. плюс я думаю лучше было бы сделать так

Код:
case '/': 
      return i/c
нет необходимости в локальной переменной.
и еще - деление будет целочисленное, если не заметил.
Я могу, Я хочу, Я буду!
ArmanPrestige вне форума Ответить с цитированием
Старый 21.10.2012, 18:00   #13
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

Да говорил же, писал от нечего делать, INT у + потому, что он возвращает цифровое значение символов, да, это можно переделать и в другой тип, но зачем, если это чисто для себя?=)
RussDragon вне форума Ответить с цитированием
Старый 21.10.2012, 19:31   #14
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

тогда зачем спрашивать у форумчан, хорош ли код?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 21.10.2012, 20:03   #15
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

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

Цитата:
тоже имеет значение)
Значение имеет только то что хорошо работает )
Если твой код хорошо решает поставленную ему задачу значит он хорош, не смотря на то что другим чЯловекам может не нравится с эстетической стороны.

P.S. Хотя я бы конечно его переписал более читабельно и общепринято.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2012, 23:50   #17
ArmanPrestige
Главное желание.
Форумчанин
 
Регистрация: 28.11.2011
Сообщений: 122
По умолчанию

Если что то делаешь, то делать это надо либо качественно, либо вообще не делать.
Я могу, Я хочу, Я буду!
ArmanPrestige вне форума Ответить с цитированием
Старый 22.10.2012, 10:10   #18
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
Радость

Цитата:
Сообщение от ArmanPrestige Посмотреть сообщение
Если что то делаешь, то делать это надо либо качественно, либо вообще не делать.
Либо делать, но молча.
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 22.10.2012, 18:11   #19
zipo666
Пользователь
 
Регистрация: 01.11.2011
Сообщений: 42
По умолчанию

Заместо ифов вообще можно юзать (...)?....:....
zipo666 вне форума Ответить с цитированием
Старый 26.10.2012, 11:46   #20
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

Код:
#include <stdio.h>
int CALCULATE(char, char, char);

int main()
{
    int c, i, g;
    char 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(char n1, char n2, char n3) {
    int 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("%d", b);
    
}
Ловите, привереды=)
Теперь тот же калькулятор, с тем же не работающим делением, но который считает то, что пришлось на вход=) Пока что однозначные числа, потому что лень было заморачиваться с большими массивами=)
UPD:
printf("calc0 %c, calc1 %c, calc2 %c\n", calc[0], calc[1], calc[2]);
Не обращайте внимания, она только для отладки)
RussDragon вне форума Ответить с цитированием
Ответ


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