Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2017, 00:52   #1
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию модуль си

что можно исправить и ,что добавить - C (СИ)
//(|x|-|y|): (1+|xy|);
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int main() {
  5. setlocale(0, "");
  6. int abs();// модуль
  7. int x,y,z,k,l;
  8. printf("Введите x y\n");
  9. scanf("%d %d",&x,&y);
  10. z=abs(x)-abs(y);
  11. k=1+abs(x*y);
  12. l=z/k;
  13. printf("%d,%d,%d\n",z,k,l );
  14. printf("Значение всегда идёт к 0\n");
  15. system("pause");
  16. return 0;
  17. }


и ещё как сделать так чтобы комбилятор выводил всё.беру x=1;y=2; число l при таких получается 0,3333333333 как сделать чтобы он вывел 0,3333333 а то он выводит просто 0.
Александр121 вне форума Ответить с цитированием
Старый 25.11.2017, 01:30   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Тип переменных смени, - ведь в типе "int" не может быть 0,333. Там только либо 0, либо 1, либо 2....

Какие вообще есть типа данных в с++?
(и чем они отличаются).

p.s.: не забываем и про вывод "%d".
ura_111 вне форума Ответить с цитированием
Старый 25.11.2017, 01:34   #3
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

смотрите всё изменил как вы сказали в вожу числа 1 и 2.
выводится -1;3 и 0.000000 а я хочу чтобы было -1;3 и 0.33333333 как это сделать?

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int main() {
  5. setlocale(0, "");
  6. int abs();// модуль
  7. int x,y,z,k;
  8. double l;
  9. printf("Введите x y\n");
  10. scanf("%d %d",&x,&y);
  11. z=abs(x)-abs(y);
  12. k=1+abs(x*y);
  13. l=z/k;
  14. printf("%d,%d,%f\n",z,k,l );
  15. printf("Значение всегда идёт к 0\n");
  16. system("pause");
  17. return 0;
  18. }
Александр121 вне форума Ответить с цитированием
Старый 25.11.2017, 01:45   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Надо сделать все переменные "double", потому что "обнуляетса" раньше чем рассчитывается "l". Или всё свести в одну формулу.
ura_111 вне форума Ответить с цитированием
Старый 25.11.2017, 01:55   #5
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

А это что такое
Код:
 int abs();// модуль
????

Удаляй.
ura_111 вне форума Ответить с цитированием
Старый 25.11.2017, 01:55   #6
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

посмотрите программа тогда вообще устрачивает работоспособность и полный бред выдаёт
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int main() {
  5. setlocale(0, "");
  6. // модуль
  7. double x,y,z,k;
  8. double l;
  9. printf("Введите x y\n");
  10. scanf("%f %f",&x,&y);
  11. z=abs(x)-abs(y)/(1+abs(x*y));
  12. printf("%f,%f,%f\n",z,k,l );
  13. system("pause");
  14. return 0;
  15. }
Александр121 вне форума Ответить с цитированием
Старый 25.11.2017, 01:59   #7
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

int main() {

setlocale(0, "");
int x, y, z, k;
double l;
printf("Введите x y\n");
scanf("%d %d", &x, &y);

z = abs(x) - abs(y);
k = 1 + abs(x*y);
l = (double)z / (double)k;

printf("%d,%d,%f\n", z, k, l);
printf("Значение всегда идёт к 0\n");
system("pause");
return 0;
}
ura_111 вне форума Ответить с цитированием
Старый 25.11.2017, 02:01   #8
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Конструкция
Код:
 (double)z
приводит один тип данных к другому
(если это возможно).
ura_111 вне форума Ответить с цитированием
Старый 25.11.2017, 02:07   #9
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

спасибо вот эти две строки как можно в одной записать?
z = abs(x) - abs(y);
k = 1 + abs(x*y);
Александр121 вне форума Ответить с цитированием
Старый 25.11.2017, 02:18   #10
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Я не понимаю...

Воспользовавшийся таблицей приоретености операций:

2.jpg

(я отметил какие операции используются в формуле). Устанавливаешь соотествующий приоретет так, чтобы считало нормально. В этом случае:

Код:
l = (double)(abs(x) - abs(y)) / (double)(1 + abs(x*y));
ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В модуль поместить функции сортировки символьных и числовых массивов. Подключить созданный модуль и применить эти функции к вводим Tuns Помощь студентам 6 27.05.2014 15:07
Создать собственный модуль и программу, использующую этот модуль. Oraner Паскаль, Turbo Pascal, PascalABC.NET 2 02.12.2012 13:15
Модуль Graph или графический модуль Seferus Паскаль, Turbo Pascal, PascalABC.NET 0 11.12.2011 13:15
Типизированные файлы, модуль Crt, Модуль Graph Kate_Fleur Помощь студентам 1 06.05.2010 17:43