Как ввести через scanf следующее 5i + 3 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно перемножить два комплексных числа. По условию задания нужно одним числом разом ввести "5i + 3", а вторым числом 2i + 4. Причем я могу ввести 5 i +3 и т.п. Затем перемножить их. Проще сделать так и я сделал
#include <stdio.h>
struct complex {
float x, y;
};
main() {
    struct complex a, b, sum, mult;
    printf("Number A\n");
    printf("   Mnim part: "); scanf("%f",&a.x);
    printf("   Real part: "); scanf("%f",&a.y);
    
    printf("Number B\n");
    printf("   Mnim part: "); scanf("%f",&b.x);
    printf("   Real part: "); scanf("%f",&b.y);

    mult.x = a.y * b.y - a.x * b.x;
    mult.y = a.x * b.y + a.y * b.x;
    
    printf("mult: %.2fi+%.2f\n" ,mult.y,mult.x);
}
Но профессор требует чтобы комплексные числа вводились разом! Как это сделать, что за тип переменных использовать, я в тупике. Должен ли я одно комплексное число одной переменной передать
    printf("Enter the first complex number in the form ai + b: ");
    scanf("........", firstComplex);  //где firstComplex будет равно например 5i + 3
Лучший ответ и спасибо гарантирую

Решение задачи: «Как ввести через scanf следующее 5i + 3»

textual
Листинг программы
struct complex a;
scanf("%fi +%f", &a.x, &a.y);

Объяснение кода листинга программы

В данном коде:

  1. Объявляется структура complex с полями x и y типа float.
  2. Затем, с помощью функции scanf, вводятся значения для полей x и y структуры a.
  3. Ввод происходит в формате 5i + 3, где 5i - это пятикратное значение i (неизвестное число), а + 3 - это сложение числа 3 с предыдущим значением.
  4. Введенные значения сохраняются в полях x и y структуры a.

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы