#include<stdio.h>
int main()
{
short a, b, c;
printf("Enter the values of a, b and c: ");
scanf(" %d %d %d ", &a, &b, &c);
if(a<b && a<c)
printf("a is smaller");
else if(b<a && b<c)
printf("b is smaller");
else
printf("c is smaller");
return 0;
}
Для входа a=10
, b=12
, c=13
, он дает выход "С меньше"?Short не работает, но int делает?
И когда я заменяю short
на int
, он дает правильный результат. Я также пробовал %h
, %i
, но он выводит то же самое.
Что случилось?
Это UB, вы передаете 'short' вместо' int', то есть тип ожидается '% d' – LPs
Неопределенное поведение не определено. –
Вы считаете, что 'short' и' int' имеют одинаковую ширину? –