Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> определение знака, помогите с функцией 
V
    Опции темы
Luyan
Дата 3.12.2008, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 3.12.2008

Репутация: 2
Всего: 7



Суть в следующем:
вводится два конца отрезка a и b (целые)
если значения a и b одинаковых знаков, то просит ввести значения заново. если разных знаков то выводит границы отрезка.
Помогите, запутался!!! 
PM   Вверх
mes
Дата 3.12.2008, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Код

bool znak(int i) // true - для полoжительных
{
   return i>=0;
}

if (znak(a)==znak(b)) ...





--------------------
PM MAIL WWW   Вверх
Dov
Дата 3.12.2008, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Если я правильно понял...

Код
int main()
{
    int a, b;

    while( 1 )
    {
        cin >> a >> b;
        if(a * b < 0) break;

        cout << "введите значения заново:\n";
    }

    cout << "... ";// выводит границы отрезка.

    return 0;
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Luyan
Дата 4.12.2008, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 3.12.2008

Репутация: 2
Всего: 7



спасибо большое, распутали smile 
PM   Вверх
mes
Дата 4.12.2008, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



сорри ..попутал...  smile 

Это сообщение отредактировал(а) mes - 4.12.2008, 00:22


--------------------
PM MAIL WWW   Вверх
Dov
Дата 4.12.2008, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Цитата(mes @  3.12.2008,  23:12 Найти цитируемый пост)
некоректно, т.к. оба положительных будут больше нуля


недопонял.  smile 



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Luyan
Дата 4.12.2008, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 3.12.2008

Репутация: 2
Всего: 7



Всё норм, через буля надо
PM   Вверх
mes
Дата 4.12.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(mes @  3.12.2008,  23:36 Найти цитируемый пост)
bool znak(int i) // true - для полoжительных
{
   return i>=0;
}
if (znak(a)==znak(b)) ...

a вот так короче :
Код

if ((a<0)==(b<0)) ...
//или условие: если одно есть нуль или оба одного знака.
if (!a || !b || (a<0)==(b<0)) ...


Это сообщение отредактировал(а) mes - 4.12.2008, 16:10


--------------------
PM MAIL WWW   Вверх
IKM2007
Дата 4.12.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: 3
Всего: 40



Цитата(mes @  4.12.2008,  12:41 Найти цитируемый пост)

Цитата(mes @  3.12.2008,  23:36 Найти цитируемый пост)
bool znak(int i) // true - для полoжительных{   return i>=0;}if (znak(a)==znak(b)) ...


a вот так короче :

Код

if ((a<0)==(b<0)) ...



Если a=0 и b>0, то получается, что 0 и положительное число одинаковых знаков, но допустим, что это так, но когда a=0 и b<0, то получается, что у них разные знаки.

Добавлено через 59 секунд
Код

if(a*b>=0)...


Добавлено через 1 минуту и 52 секунды
если 0 не считать, то 
Код

if(a*b>0)...



--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.