Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
1

Беззнаковый аргумент функции

22.10.2018, 14:20. Показов 764. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.

Есть вопрос по уточнению типа аргументов функций. К примеру, есть функция:
C++
1
2
3
4
5
6
unsigned long int factorial(unsigned int x) {
    if (x <= 1) {
        return 1;
    }
    return x * factorial(x - 1);
}
Функция ожидает аргумент типа беззнаковое целое, но почему-то она успешно проглатывает отрицательные числа. Правда при этом ненадолго зависает, и программа завершается без выдачи результата и сообщений об ошибке. Что не так? Может я что-то не так понял? Я в сpp недавно. Да и надо ли использовать unsigned, если нужно 100% положительное число?
Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2018, 14:20
Ответы с готовыми решениями:

Вычислить значение функции аргумент которой вычисляется из другой кусочно заданной функции
Решите программу то я не знаю как:hysteric: Вычислить значение y в зависимости от выбранной...

Функция, возвращает квадрат аргумента, если аргумент число; хвост списка, если аргумент список; иначе сам аргумент
Помогите, пожалуйста, с заданием: Написать функцию, которая возвращает квадрат аргумента, если...

Как передавать в аргумент функции массив, и можно ли возвращать его из функции?
привет друзья! можно ли в VB 6.0 передавать в аргумент функции массив и можно ли возвращать его...

беззнаковый Long?
В общем столкнулся с интересной задачей есть работа с битовыми данными и необходимостью их...

3
694 / 5684 / 265
Регистрация: 11.08.2016
Сообщений: 3,522
22.10.2018, 15:20 2
Преобразование типов.
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,884
Записей в блоге: 1
22.10.2018, 15:37 3
Зверушь, загугли, предоставление чисел в памяти эвм.
0
Злостный нарушитель
9507 / 5151 / 1175
Регистрация: 12.03.2015
Сообщений: 24,290
22.10.2018, 16:46 4
-1 приведённая к unsigned int = 0xFFFFFFFF. 31-й разряд - это знак. Поэтому все отрицательные числа - это интервал 0x80000000...0xFFFFFFFF. Поэтому не срабатывает твой if (x <= 1): если ты задал х = -1, то тут он равен 4294967295, т.к. переменная имеет тип unsigned и компайлер знаковый бит расценивает как двоичный разряд.
1
22.10.2018, 16:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2018, 16:46
Помогаю со студенческими работами здесь

Беззнаковый int ведет себя как знаковый
Всем привет. Код: #include &lt;stdio.h&gt; main() { unsigned int a; a = 2147483647;...

Аргумент функции
можно ли представить аргумент функции в следующем виде: \arg...

Аргумент функции
Помогите записать в нормальном виде, то есть через арктангенсы и углы. arg({e}^{-2ix}), x\in R

Аргумент функции.
Дано значение функции sin(x).вычислить главное значение аргумента этой функции в радианном...

Аргумент функции sin
Здравствуйте, хочу понять запись sin(30 * 3.14159265 / 180) Все работает, но почему именно так...

Непонятный аргумент функции
Кто-нибудь может подсказать, что принимает такая функция в качестве аргумента? void foo(int...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru