C复数的四则运算

时间:2021-12-05 08:23:12
#include<stdio.h>
void judge(int True,int Fake)
{
    if (True == 0)
    {
        if (Fake == 1)
            printf("i\n\n");
        else if (Fake == 0)
            printf("0\n\n");
        else if (Fake == -1)
            printf("-i\n\n");
        else
            printf("%di\n\n", Fake);
    }
    else if (Fake == 1)
        printf("%d+i\n\n", True);
    else if (Fake == 0)
        printf("%d\n\n", True);
    else if (Fake == -1)
        printf("%d-i\n\n", True);
    else if (Fake > 0)
        printf("%d+%di\n\n", True, Fake);
    else if (Fake < 0)
        printf("%d%di\n\n", True, Fake);
}
int main()
{
    float true1;
    float true2;
    float fake1;
    float fake2;
    int logo;
    int True = 0, Fake = 0;
    while (~scanf("%f%f%f%f%d",&true1,&fake1,&true2,&fake2,&logo))
    {
        if (logo == 0)
        {
            True = (int) (true1 + true2);
            Fake = (int) (fake1 + fake2);
        }
        else if (logo == 1)
        {
            True = (int) (true1 - true2);
            Fake = (int) (fake1 - fake2);
        }
        else if (logo == 2)
        {
            True = (int) (true1 * true2 - fake1 * fake2);
            Fake = (int) (true1 * fake2 + fake1 * true2);
        }
        else if (logo == 3)
        {
            True = (int) ((true1 * true2 + fake1 * fake2) / (true2 * true2 + fake2 * fake2));
            Fake = (int) ((fake1 * true2 - true1 * fake2) / (true2 * true2 + fake2 * fake2));
        }
        judge(True, Fake);
 
    }
}