Нулевые результаты при вычислении выражения - C (СИ)
Формулировка задачи:
Всем добрый день. Подскажите, пожалуйста, почему прога не считает а выводит нулевые результаты?
Заранeе спасибо.
#include <stdio.h>
#include <stdlib.h>
struct chisla
{
int a;
int b;
int c;
int d;
}comp;
int main()
{
//--------------------FIRST PAIR--------------------//
printf("\n\n\tEnter first pair (a+bi).");
printf("\n\tEnter a: ");
scanf("%d", &comp.a);
printf("\n\tEnter b: ");
scanf("%d", &comp.b);
//---------------------SECOND PAIR--------------------//
printf("\n\n\tEnter first pair (c+di).");
printf("\n\tEnter c: ");
scanf("%d", &comp.c);
printf("\n\tEnter d: ");
scanf("%d", &comp.d);
//--------------------DIVIDEND----------------------//
float di[2];
di[0]=((comp.a*comp.c+comp.b*comp.d) / (comp.c * comp.c + comp.d * comp.d));
di[1]=((comp.b*comp.c-comp.a*comp.d) / (comp.c * comp.c + comp.d * comp.d));
if(di[1]>0)
{
printf("\n\n\tDividend is: %0.2f+%0.2fi", di[0], di[1]);
}
else
{
printf("\n\n\tDividend is: %0.2f%0.2fi", di[0], di[1]);
}
return 0;
}Решение задачи: «Нулевые результаты при вычислении выражения»
textual
Листинг программы
int di[2]; di[0]=((comp.a*comp.c+comp.b*comp.d) / (comp.c * comp.c + comp.d * comp.d)); di[1]=((comp.b*comp.c-comp.a*comp.d) / (comp.c * comp.c + comp.d * comp.d));
Объяснение кода листинга программы
- Объявляется массив
diразмером 2. - Задаются значения переменных
comp.a,comp.b,comp.c,comp.d. - Вычисляется значение
di[0]по формуле(comp.a*comp.c+comp.b*comp.d) / (comp.c * comp.c + comp.d * comp.d). - Вычисляется значение
di[1]по формуле(comp.b*comp.c-comp.a*comp.d) / (comp.c * comp.c + comp.d * comp.d).