#include<stdio.h>
#define square(x) x*x
void main()
{
int i;
i = 8/square(4);
printf("%d %d", i, 8/square(4));
}
дает выход: 8 8Printf дает неправильный выход
, но если я напишу ниже код:
#include<stdio.h>
#define square(x) x*x
void main()
{
float i;
i = 8/square(4);
printf("%f %f", i, 8/square(4));
}
дает выход: 8,000000 0,000000
Почему так ??? пожалуйста, объясните
Использование чисел с плавающей точкой буквальным, если вы указали '% f'. '8.0f/квадрат (4.0f)'. – sgarizvi
ВСЕГДА старайтесь использовать макросы с необходимыми скобками, чтобы облегчить жизнь! –
'int main()' ... Приоритет оператора ... Неверный спецификатор формата ... ** Вы даже потрудились прочитать базовый учебник C? ** –