Как ввести через 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);
Объяснение кода листинга программы
В данном коде:
- Объявляется структура
complexс полямиxиyтипаfloat. - Затем, с помощью функции
scanf, вводятся значения для полейxиyструктурыa. - Ввод происходит в формате
5i + 3, где5i- это пятикратное значениеi(неизвестное число), а+ 3- это сложение числа3с предыдущим значением. - Введенные значения сохраняются в полях
xиyструктурыa.