//o/p when i/p is 16 and 2 is 4 and if variable is int then o/p will be 20;
#define SETBIT(A,B) A|1<<B
int main(){
char n,pos;
printf("Enter a value");
scanf("%d",&n);
printf("Enter position");
scanf("%d",&pos);
printf("Value after setting %d",SETBIT(n,pos));
}
-3
A
ответ
0
Для функций *scanf
, спецификатор преобразования d
предполагает, что его соответствующий параметр имеет тип int *
; если это не так, то это undefined, и в значительной степени любой результат возможен.
Если вы хотите использовать char
для pos
и n
, то вы должны использовать %hhd
вместо %d
в scanf
вызова.
+0
Пока что вывод такой же. – rin92
Смежные вопросы
- 1. Почему приведенный ниже код дает мне «adviceDidNotMatch»
- 2. snprintf дает разные выходные данные
- 3. Тот же код дает разные выходные данные в C
- 4. Почему cURL дает разные выходные данные на сервере и localhost?
- 5. Почему приведенный ниже код не переключает панель?
- 6. Почему приведенный ниже код возвращает значение цвета?
- 7. Почему я получаю разные выходные данные для приведенных ниже программ?
- 8. Почему оператор дает разные выходные данные для неизменяемых объектов?
- 9. Почему hashCode() дает разные выходные данные для одного и того же объекта в java?
- 10. Скажите, пожалуйста, почему приведенный ниже код не работает?
- 11. Почему эти две строковые операции производят разные выходные данные?
- 12. Почему следующие запросы имеют разные выходные данные?
- 13. Как проанализировать приведенный ниже код xml?
- 14. proc_open дает разные выходные данные в Apache2 vs CLI
- 15. Почему приведенный ниже код возвращает true только для a = 1?
- 16. Почему приведенный ниже код не сканирует все входы правильно?
- 17. Почему код, приведенный ниже, может привести к сбою?
- 18. Почему firefox не запускается на планшете, используя приведенный ниже код.
- 19. Почему приведенный ниже код работает только для определенного набора входов?
- 20. Создание набора дает разные выходные данные, чем ожидалось
- 21. dispatch_apply дает неверные выходные данные
- 22. RSA Шифрование, возвращающее разные выходные данные
- 23. Функция консоли JavaScript, предоставляющая разные выходные данные
- 24. Почему CodeIgniter сохраняет выходные данные в переменной?
- 25. Почему приведенный ниже код печатает значение переменной экземпляра родительского класса, а не дочернего класса?
- 26. команда curl дает разные выходные данные для URL-адреса
- 27. Почему приведенный ниже код дает «разыгрывающий тип-караульный указатель нарушает строгие правила псевдонимов» и как его исправить?
- 28. шифрование openssl дает разные выходные данные на разных машинах.
- 29. PHP md5() дает разные выходные данные, тогда MySQL md5
- 30. Почему следующий код дает разные ответы?
'scanf ("% d ", &n);' спецификатор формата не соответствует типу данных, а другой 'scanf' тоже. –
' scanf ("% d", & n) 'с' char n' yields undefined поведение. Аналогично для 'scanf («% d », & pos)'. На практике 'scanf' записывает 4 байта данных в переменную размером 1 байт (хотя эти размеры вообще не продиктованы стандартом языка, это на большинстве платформ) .Вы должны решить, какой тип данных вы хотите сканировать с клавиатуры. С '"% d "' - используйте 'int'. Для' char' - use '"% c "'. –
Пожалуйста, отправьте форматированный код –