設置 | 登錄 | 註冊

目前共有2篇帖子。

【试题】复数运算

1樓 巨大八爪鱼 2016-3-4 09:28
#include <stdio.h>
#include <stdlib.h>

typedef struct
{
    float a;
    float b;
} COMPLEX;

COMPLEX *comp_add(COMPLEX *a, COMPLEX *b)
{
    a->a += b->a;
    a->b += b->b;
    return a;
}

COMPLEX *comp_substract(COMPLEX *a, COMPLEX *b)
{
    a->a -= b->a;
    a->b -= b->b;
    return a;
}

COMPLEX *comp_multiply(COMPLEX *a, COMPLEX *b)
{
    COMPLEX *c = (COMPLEX *)malloc(sizeof(COMPLEX));
    c->a = a->a * b->a - a->b * b->b;
    c->b = a->b * b->a + a->a * b->b;
    *a = *c;
    free(c);
    return a;
}

COMPLEX *comp_divide(COMPLEX *a, COMPLEX *b)
{
    COMPLEX c = *b;
    c.b = -c.b;
    comp_multiply(a, &c);
    comp_multiply(b, &c);
    a->a /= b->a;
    a->b /= b->a;
    return a;
}

int main()
{
    COMPLEX a, b;
    char opr;
    scanf("%c%f%f%f%f", &opr, &a.a, &a.b, &b.a, &b.b);
    switch (opr)
    {
    case '-':
        comp_substract(&a, &b);
        break;
    case '*':
        comp_multiply(&a, &b);
        break;
    case '/':
        comp_divide(&a, &b);
        break;
    default:
    case '+':
        comp_add(&a, &b);
        break;
    }
    printf("%.2f+%.2fi\n", a.a, a.b);
    return 0;
}
2樓 巨大八爪鱼 2016-4-16 20:48
提交时间  04-16 20:49   评测结果  正确  
得分  100  

內容轉換:

回覆帖子
內容:
用戶名: 您目前是匿名發表。
驗證碼:
看不清?換一張
©2010-2025 Purasbar Ver3.0 [手機版] [桌面版]
除非另有聲明,本站採用知識共享署名-相同方式共享 3.0 Unported許可協議進行許可。