#include <stdio.h>
struct Complex
{
double real; //Действит. часть
double imag; //Мнимая часть
};
struct Complex inputComplex();
void printComplex(struct Complex c);
struct Complex addComplex(struct Complex a, struct Complex b);
struct Complex subtractComplex(struct Complex a, struct Complex b);
struct Complex multiplyComplex(struct Complex a, struct Complex b);
struct Complex divideComplex(struct Complex a, struct Complex b);
int main()
{
struct Complex num1, num2;
printf("Введите первое комплексное число:\n"); num1 = inputComplex();
printf("Введите второе комплексное число:\n"); num2 = inputComplex();
printComplex(num1);
printComplex(num2);
printf("\nРезультаты операций:");
struct Complex sum = addComplex(num1, num2);
printComplex(sum);
struct Complex diff = subtractComplex(num1, num2);
printComplex(diff);
struct Complex prod = multiplyComplex(num1, num2);
printComplex(prod);
struct Complex quot = divideComplex(num1, num2);
printComplex(quot);
return 0;
}
//Функция ввода комплексного числа:
struct Complex inputComplex() {
struct Complex c;
printf("Введите действительную часть: \n"); printf("Введите мнимую часть: \n"); return c;
}
//Функция для вывода комплексного числа:
void printComplex(struct Complex c) {
if (c.imag >= 0)
printf("%.2f + i*%.2f\n", c.
real, c.
imag); else
printf("%.2f - i*%.2f\n", c.
real, -c.
imag); }
//Сложение:
struct Complex addComplex(struct Complex a, struct Complex b)
{
struct Complex result;
result.real = a.real + b.real;
result.imag = a.imag + b.imag;
return result;
}
//Вычитание:
struct Complex subtractComplex(struct Complex a, struct Complex b)
{
struct Complex result;
result.real = a.real - b.real;
result.imag = a.imag - b.imag;
return result;
}
//Умножение:
struct Complex multiplyComplex(struct Complex a, struct Complex b)
{
struct Complex result;
result.real = a.real * b.real - a.imag * b.imag;
result.imag = a.real * b.imag + a.imag * b.real;
return result;
}
//Деление:
struct Complex divideComplex(struct Complex a, struct Complex b)
{
struct Complex result;
double denominator = b.real * b.real + b.imag * b.imag;
if (denominator == 0)
{
printf("Ошибка: деление на ноль!\n"); result.real = result.imag = 0;
return result;
}
result.real = (a.real * b.real + a.imag * b.imag) / denominator;
result.imag = (a.imag * b.real - a.real * b.imag) / denominator;
return result;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3QgQ29tcGxleCAKewogICAgZG91YmxlIHJlYWw7IC8v0JTQtdC50YHRgtCy0LjRgi4g0YfQsNGB0YLRjAogICAgZG91YmxlIGltYWc7IC8v0JzQvdC40LzQsNGPINGH0LDRgdGC0YwKfTsKCnN0cnVjdCBDb21wbGV4IGlucHV0Q29tcGxleCgpOwp2b2lkIHByaW50Q29tcGxleChzdHJ1Y3QgQ29tcGxleCBjKTsKc3RydWN0IENvbXBsZXggYWRkQ29tcGxleChzdHJ1Y3QgQ29tcGxleCBhLCBzdHJ1Y3QgQ29tcGxleCBiKTsKc3RydWN0IENvbXBsZXggc3VidHJhY3RDb21wbGV4KHN0cnVjdCBDb21wbGV4IGEsIHN0cnVjdCBDb21wbGV4IGIpOwpzdHJ1Y3QgQ29tcGxleCBtdWx0aXBseUNvbXBsZXgoc3RydWN0IENvbXBsZXggYSwgc3RydWN0IENvbXBsZXggYik7CnN0cnVjdCBDb21wbGV4IGRpdmlkZUNvbXBsZXgoc3RydWN0IENvbXBsZXggYSwgc3RydWN0IENvbXBsZXggYik7CgppbnQgbWFpbigpIAp7CiAgICBzdHJ1Y3QgQ29tcGxleCBudW0xLCBudW0yOwogICAgCiAgICBwcmludGYoItCS0LLQtdC00LjRgtC1INC/0LXRgNCy0L7QtSDQutC+0LzQv9C70LXQutGB0L3QvtC1INGH0LjRgdC70L46XG4iKTsKICAgIG51bTEgPSBpbnB1dENvbXBsZXgoKTsKICAgIAogICAgcHJpbnRmKCLQktCy0LXQtNC40YLQtSDQstGC0L7RgNC+0LUg0LrQvtC80L/Qu9C10LrRgdC90L7QtSDRh9C40YHQu9C+OlxuIik7CiAgICBudW0yID0gaW5wdXRDb21wbGV4KCk7CiAgICAKICAgIHByaW50ZigiXG7Qn9C10YDQstC+0LUg0YfQuNGB0LvQvjogIik7CiAgICBwcmludENvbXBsZXgobnVtMSk7CiAgICBwcmludGYoItCS0YLQvtGA0L7QtSDRh9C40YHQu9C+OiAiKTsKICAgIHByaW50Q29tcGxleChudW0yKTsKICAgIAogICAgcHJpbnRmKCJcbtCg0LXQt9GD0LvRjNGC0LDRgtGLINC+0L/QtdGA0LDRhtC40Lk6Iik7CiAgICAKICAgIHN0cnVjdCBDb21wbGV4IHN1bSA9IGFkZENvbXBsZXgobnVtMSwgbnVtMik7CiAgICBwcmludGYoIlxu0KHRg9C80LzQsDogIik7CiAgICBwcmludENvbXBsZXgoc3VtKTsKICAgIAogICAgc3RydWN0IENvbXBsZXggZGlmZiA9IHN1YnRyYWN0Q29tcGxleChudW0xLCBudW0yKTsKICAgIHByaW50Zigi0KDQsNC30L3QvtGB0YLRjDogIik7CiAgICBwcmludENvbXBsZXgoZGlmZik7CiAgICAKICAgIHN0cnVjdCBDb21wbGV4IHByb2QgPSBtdWx0aXBseUNvbXBsZXgobnVtMSwgbnVtMik7CiAgICBwcmludGYoItCf0YDQvtC40LfQstC10LTQtdC90LjQtTogIik7CiAgICBwcmludENvbXBsZXgocHJvZCk7CiAgICAKICAgIHN0cnVjdCBDb21wbGV4IHF1b3QgPSBkaXZpZGVDb21wbGV4KG51bTEsIG51bTIpOwogICAgcHJpbnRmKCLQp9Cw0YHRgtC90L7QtTogIik7CiAgICBwcmludENvbXBsZXgocXVvdCk7CiAgICAKICAgIHJldHVybiAwOwp9CgovL9Ck0YPQvdC60YbQuNGPINCy0LLQvtC00LAg0LrQvtC80L/Qu9C10LrRgdC90L7Qs9C+INGH0LjRgdC70LA6CnN0cnVjdCBDb21wbGV4IGlucHV0Q29tcGxleCgpIHsKICAgIHN0cnVjdCBDb21wbGV4IGM7CiAgICBwcmludGYoItCS0LLQtdC00LjRgtC1INC00LXQudGB0YLQstC40YLQtdC70YzQvdGD0Y4g0YfQsNGB0YLRjDogXG4iKTsKICAgIHNjYW5mKCIlbGYiLCAmYy5yZWFsKTsKICAgIHByaW50Zigi0JLQstC10LTQuNGC0LUg0LzQvdC40LzRg9GOINGH0LDRgdGC0Yw6IFxuIik7CiAgICBzY2FuZigiJWxmIiwgJmMuaW1hZyk7CiAgICByZXR1cm4gYzsKfQoKLy/QpNGD0L3QutGG0LjRjyDQtNC70Y8g0LLRi9Cy0L7QtNCwINC60L7QvNC/0LvQtdC60YHQvdC+0LPQviDRh9C40YHQu9CwOgp2b2lkIHByaW50Q29tcGxleChzdHJ1Y3QgQ29tcGxleCBjKSB7CiAgICBpZiAoYy5pbWFnID49IDApCiAgICAgICAgcHJpbnRmKCIlLjJmICsgaSolLjJmXG4iLCBjLnJlYWwsIGMuaW1hZyk7CiAgICBlbHNlCiAgICAgICAgcHJpbnRmKCIlLjJmIC0gaSolLjJmXG4iLCBjLnJlYWwsIC1jLmltYWcpOwp9CgovL9Ch0LvQvtC20LXQvdC40LU6CnN0cnVjdCBDb21wbGV4IGFkZENvbXBsZXgoc3RydWN0IENvbXBsZXggYSwgc3RydWN0IENvbXBsZXggYikgCnsKICAgIHN0cnVjdCBDb21wbGV4IHJlc3VsdDsKICAgIHJlc3VsdC5yZWFsID0gYS5yZWFsICsgYi5yZWFsOwogICAgcmVzdWx0LmltYWcgPSBhLmltYWcgKyBiLmltYWc7CiAgICByZXR1cm4gcmVzdWx0Owp9CgovL9CS0YvRh9C40YLQsNC90LjQtToKc3RydWN0IENvbXBsZXggc3VidHJhY3RDb21wbGV4KHN0cnVjdCBDb21wbGV4IGEsIHN0cnVjdCBDb21wbGV4IGIpIAp7CiAgICBzdHJ1Y3QgQ29tcGxleCByZXN1bHQ7CiAgICByZXN1bHQucmVhbCA9IGEucmVhbCAtIGIucmVhbDsKICAgIHJlc3VsdC5pbWFnID0gYS5pbWFnIC0gYi5pbWFnOwogICAgcmV0dXJuIHJlc3VsdDsKfQoKLy/Qo9C80L3QvtC20LXQvdC40LU6CnN0cnVjdCBDb21wbGV4IG11bHRpcGx5Q29tcGxleChzdHJ1Y3QgQ29tcGxleCBhLCBzdHJ1Y3QgQ29tcGxleCBiKSAKewogICAgc3RydWN0IENvbXBsZXggcmVzdWx0OwogICAgcmVzdWx0LnJlYWwgPSBhLnJlYWwgKiBiLnJlYWwgLSBhLmltYWcgKiBiLmltYWc7CiAgICByZXN1bHQuaW1hZyA9IGEucmVhbCAqIGIuaW1hZyArIGEuaW1hZyAqIGIucmVhbDsKICAgIHJldHVybiByZXN1bHQ7Cn0KCi8v0JTQtdC70LXQvdC40LU6CnN0cnVjdCBDb21wbGV4IGRpdmlkZUNvbXBsZXgoc3RydWN0IENvbXBsZXggYSwgc3RydWN0IENvbXBsZXggYikgCnsKICAgIHN0cnVjdCBDb21wbGV4IHJlc3VsdDsKICAgIGRvdWJsZSBkZW5vbWluYXRvciA9IGIucmVhbCAqIGIucmVhbCArIGIuaW1hZyAqIGIuaW1hZzsKICAgIGlmIChkZW5vbWluYXRvciA9PSAwKSAKICAgIHsKICAgICAgICBwcmludGYoItCe0YjQuNCx0LrQsDog0LTQtdC70LXQvdC40LUg0L3QsCDQvdC+0LvRjCFcbiIpOwogICAgICAgIHJlc3VsdC5yZWFsID0gcmVzdWx0LmltYWcgPSAwOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9CiAgICByZXN1bHQucmVhbCA9IChhLnJlYWwgKiBiLnJlYWwgKyBhLmltYWcgKiBiLmltYWcpIC8gZGVub21pbmF0b3I7CiAgICByZXN1bHQuaW1hZyA9IChhLmltYWcgKiBiLnJlYWwgLSBhLnJlYWwgKiBiLmltYWcpIC8gZGVub21pbmF0b3I7CiAgICByZXR1cm4gcmVzdWx0Owp9