Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Leslie
0 / 0 / 0
Регистрация: 10.05.2011
Сообщений: 16
#1

Преобразовать в тернарную условную операцию - C++

03.01.2012, 14:42. Просмотров 330. Ответов 3
Метки нет (Все метки)

Добрый день!
Я столкнулся с проблемой преобразования функции factorial в условную операцию. Ругается на return'ы.
Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <stdlib.h>
#include <iomanip>
unsigned long factorial(unsigned long);
using namespace std;
main()
{  
  for (int m = 0; m <= 10; m++)
  cout << setw(2) << m << "! = " << factorial(m) << endl;
  system("PAUSE");
  return 0;
}
 
  unsigned long factorial(unsigned long number)
  {
    if (number <= 1)
      return 1;
    else
      return number * factorial(number - 1);
  }
Кстати, возможны ли случаи, когда нельзя сделать преобразования из if\else? И можно ли пользоваться данным методом, если if\else несколько?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2012, 14:42     Преобразовать в тернарную условную операцию
Посмотрите здесь:

Правильно написать Тернарную условную операцию - C++
Не компилируется строчка: (++iter == file.end()) ? (f_out &lt;&lt; endl;) : (break;);

Реализовать операцию вставки нового элемента в отсортированный список и операцию извлечения из списка данных - C++
реализовать операцию вставки нового элемента в отсортированный список и операцию извлечения из списка данных о 3-х студентов с самым низким...

Оператор /=. Обьясните операцию. - C++
Что означает оператор /= Точнее как его по другому записать?

Переопределить операцию сложения - C++
Добрый вечер. Вообщем надо написать программу, которая складывает 2 строки причём так что 1 буква 1 строки с 1 буквой второй строки, то...

Объясните пожалуйста операцию -> и :: - C++
Объясните пожалуйста доступным языком операцию -&gt; и :: читал в книгах, полностью не могу догнать. Заранее спасибо

реализовать операцию присваивания - C++
Описать класс Строка с динамическим выделением памяти, реализовать операцию присваивания, остальные методы достаточно только объявить. Не...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asm
62 / 35 / 1
Регистрация: 05.10.2011
Сообщений: 137
03.01.2012, 15:02     Преобразовать в тернарную условную операцию #2
Цитата Сообщение от Leslie Посмотреть сообщение
for (int m = 0; m <= 10; m++)
заменить на
C++
1
for (int m = 2; m <= 10; m++)
if (number <= 1)
return 1;
else
return number * factorial(number - 1);
на
C++
1
return (number <= 1) ?  1 : number * factorial(number - 1);
Добавлено через 2 минуты
Цитата Сообщение от asm Посмотреть сообщение
for (int m = 2; m <= 10; m++)
m=1 тоже можно, все в условии
Цитата Сообщение от Leslie Посмотреть сообщение
number <= 1
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
03.01.2012, 15:13     Преобразовать в тернарную условную операцию #3
Цитата Сообщение от Leslie Посмотреть сообщение
И можно ли пользоваться данным методом, если if\else несколько?
Да, можно. Тогда будут вложенные операции. Например:
C++
1
2
3
4
5
6
7
if ( n >= 5 )
    if ( n == 10 )
        n *= 2;
    else
        n *= 3;
else
    n = 0;
заменяется на:
C++
1
n = ( n >= 5 ) ? ( ( n == 10 ) ? ( n * 2 ) : ( n * 3 ) ) : ( 0 );
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2012, 15:13     Преобразовать в тернарную условную операцию
Еще ссылки по теме:

Найти ошибку и перегрузить операцию - C++
Ребята! Пропадаю! Помогите найти ошибку в коде и написать перегрузку: class Reis { int p; int hl; public: reis operator - (reis...

Перегрузите операцию << для класса - C++
Собственно говоря,сама задача: Перегрузите операцию &lt;&lt; для класса , который будет просить ввести любую строку, а затем должен опять вывести...

Добавить операцию empty() в стек - C++
Добавьте в программы реализацию операции empty(), а также реакцию на ситуации “overflow” и “underflow”. Учу С++,но до ООП еще не...

Помогите перегрузить операцию присваивания - C++
Здравствуйте, есть программа: #include&lt;iostream&gt; using namespace std; struct Element { char data; //Aaiiua Element...

В классе перегрузить операцию сложения - C++
Здравствуйте. Помогите кто сможет. Задание, нужно создать два прямоугольника, рисовать их не нужно, только создать ихние позоции...

В классе string перегрузить операцию вчитания - C++
Здравствуйте! Помогите, кто сможет. Задание: есть строка например, String s1(&quot;123&quot;); и строка String s2(&quot;здравствуйте&quot;); написав:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Leslie
0 / 0 / 0
Регистрация: 10.05.2011
Сообщений: 16
03.01.2012, 15:13  [ТС]     Преобразовать в тернарную условную операцию #4
Спасибо, всё заработало.
Yandex
Объявления
03.01.2012, 15:13     Преобразовать в тернарную условную операцию
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru