Умножение чисел в C
Я написал следующий код для умножения двух чисел, и я вижу результат, который будет неправильным. Я предполагаю, что тип данных не имеет правильного значения. Но ответ на его печать неверен.
#include<stdio.h>
main()
{
long int val1,val2;
val1=val2=1235;
char c = 'y';
switch(c)
{
case 'y' : printf("%20d",val1*val2);
break;
default: printf("invalid");
break;
}
return 0;
}
ВЫХОД:
17897 // что не правильный ответ
// это должно быть 1525225
1 ответ
Решение
Тип данных содержит правильное значение, но вы используете неправильный спецификатор. Вы должны использовать %ld
с длинным инт.
printf("%20ld",val1*val2);
Я дважды проверил, и это сработало.