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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2022, 17:30   #1
DroonFail
Новичок
Джуниор
 
Регистрация: 10.01.2022
Сообщений: 1
Восклицание Разработать программу. язык СИ

Разработать программу. Типы данных определяются из
специфики задачи, если их тип не указан явно. При реализации программы использовать
оператор условия if…else.

Вот код, не могу понять почему при условии b < 0 выдаёт ответ на b > 0.

Код:
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
	setlocale(LC_ALL, "Russian"); // включил русский
	cout << "Пожалуйста, введите цифры Х и У через пробел: "; // вывел что нужно сделать пользователю
	double x, y, b = 0; // объявил x и y , тип дабл
	cin >> x >> y;
	b = x / y; // делю сразу, чтобы было удобнее работать
	double c; // на вывод
	if (x == 0) { // если x равен 0
		c = pow((pow(x, 3) + pow(y, 3)), 1 / 2);
		cout << "х равен 0. Ответ: ";
		cout << c;
	}
	else
	if (y == 0) { // если y равен 0
		c = 0;
		cout << "у равен 0. Ответ: ";
		cout << c;
	}
	else
	if (b < 0) { // если частное меньше 0

			c = log10(abs(x * y)) + pow((pow(x, 3 / 2) + y), 1 / 2);
			cout << "Частное x и y меньше 0. Ответ: ";
			cout << c;
	}
	else
	if (b > 0) { // если частное больше 0

			c = log(x * y) + pow((pow(x, 3 / 2) + y), 1 / 2);
			cout << "Частное x и y больше 0. Ответ: ";
			cout << c;
	}
}
Изображения
Тип файла: jpg Снимок.JPG (12.4 Кб, 13 просмотров)
DroonFail вне форума Ответить с цитированием
Старый 10.01.2022, 18:22   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Мне не очень понятна ваша логика:
Код:
b = x / y; // делю сразу, чтобы было удобнее работать
А что будет, если y == 0? Вероятно ошибка.
Значения для x и y никак не связаны.
Я бы написал такую конструкцию:
Код:
Если x == 0
   выполнили что-то

Если y == 0
   выполнили что-то
Иначе:
   b = x / y;      // тут y != 0
   Если b < 0
         ...
   Иначе если b > 0
         ...
И да, при тестировании x и y должны быть разных знаков ( + +, - +, + -, - -) или равняться нулю.

PS: Добавлю.
Если x/y > 0, то x и y - одного знака, а если x/y < 0, то разного.
В формуле есть выражение (x)^3/2 (x в степени 3/2). Как оно будет считаться для x < 0.
Должно получиться комплексное число вроде
Как-то так, ...

Последний раз редактировалось ViktorR; 10.01.2022 в 18:32.
ViktorR вне форума Ответить с цитированием
Старый 10.01.2022, 22:27   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вещественные числа нельзя сравнивать с нулем напрямую, а нужно с малой величиной эпсилон (можете выбрать желаемую точность). Все дроби будут рассчитываться целочисленно, т.е. 1 / 2 равно 0, а не 0.5 (используйте в дробях вещественные числа).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 10.01.2022, 22:47   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Дык и не С это вовсе, а ++
----------------------
У нас в походе дежурный спрашивал: "Тебе кашу как таковую или кашу с маслом?" Аналогично и тут: С как таковой или С++ ?

Последний раз редактировалось digitalis; 10.01.2022 в 22:50.
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработать программу, Язык программирования Delphi или C/C++ Baizard Помощь студентам 1 20.02.2021 16:29
Cоставить программу с процедурой на задачу: разработать программу "Вокзал" которая выдает сведения Елена Мин Паскаль, Turbo Pascal, PascalABC.NET 0 12.12.2015 20:48
Разработать программу. язык СИ Даша(S) Помощь студентам 10 21.11.2011 01:40
Разработать программу печати выбранного текстового файла (язык дельфи или ассемблер) KrisPipis Помощь студентам 0 17.01.2011 21:22
Разработать пакетный файл.Просто, но нужен язык Клим Помощь студентам 8 24.11.2010 10:04