Неверно выводится нецелое числовое значение

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Кирилл1212
Сообщения: 6
Зарегистрирован: 11 ноя 2017, 02:15

25 ноя 2017, 00:56

Код: Выделить всё

//(|x|-|y|): (1+|xy|);

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main() {
   setlocale(0, "");
   int abs();// модуль
   int x,y,z,k,l;
   printf("Введите x y\n");
   scanf("%d %d",&x,&y);
   z=abs(x)-abs(y);
   k=1+abs(x*y);
   l=z/k;
   printf("%d,%d,%d\n",z,k,l );
   printf("Значение всегда идёт к 0\n");
   system("pause");
   return 0;
}
И ещё как сделать так чтобы комбилятор выводил всё.беру x=1;y=2; число l при таких получается 0,3333333333 как сделать чтобы он вывел 0,3333333 а то он выводит просто 0.
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

26 ноя 2017, 00:39

У тебя l является целым числом, поэтому при делении просто происходит отбрасывание нецелой части. Меняй тип l на float/double, а также корректируй printf, чтобы вывести число в плавающей точной, и всё у тебя получится.

P.S. Переименовал тему. Следующий раз просто удалю тему, если у неё будет такое же бестолковое название. Читай правила форму и правила оформления тем.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить