Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Cộng hai số phức trong C sử dụng struct

Mô tả bài toán

Viết chương trình C nhập 2 số phức từ bàn phím và tính tổng của chúng. Số phức có dạng a + bi với a là phần thực, b là phần ảo.

Kiến thức cần biết

  • Số phức: z = a + bi (i² = -1)
  • Cộng 2 số phức: (a + bi) + (c + di) = (a+c) + (b+d)i
  • Trong C: dùng struct để gom phần thực và phần ảo

Chương trình C

#include <stdio.h>

// Định nghĩa cấu trúc số phức
struct SoPhuc {
    int thuc;   // Phần thực
    int ao;     // Phần ảo
};

int main() {
    struct SoPhuc z1, z2, tong;
    
    // Nhập số phức thứ 1
    printf("Nhap so phuc thu 1 (phan thuc phan ao): ");
    scanf("%d %d", &z1.thuc, &z1.ao);
    
    // Nhập số phức thứ 2
    printf("Nhap so phuc thu 2 (phan thuc phan ao): ");
    scanf("%d %d", &z2.thuc, &z2.ao);
    
    // Tính tổng: (a+c) + (b+d)i
    tong.thuc = z1.thuc + z2.thuc;
    tong.ao   = z1.ao + z2.ao;
    
    // In kết quả
    printf("Tong 2 so phuc: (%d) + (%di)\n", tong.thuc, tong.ao);
    
    return 0;
}

Kết quả chạy chương trình

Nhap so phuc thu 1 (phan thuc phan ao): 2 3
Nhap so phuc thu 2 (phan thuc phan ao): 4 5
Tong 2 so phuc: (6) + (8i)

Giải thích

Ví dụ: (2+3i) + (4+5i) = (2+4) + (3+5)i = 6 + 8i

Mở rộng: Sử dụng hàm riêng cho phép cộng

struct SoPhuc congSoPhuc(struct SoPhuc a, struct SoPhuc b) {
    struct SoPhuc kq;
    kq.thuc = a.thuc + b.thuc;
    kq.ao   = a.ao + b.ao;
    return kq;
}

// Trong main:
tong = congSoPhuc(z1, z2);

Các phép toán khác với số phức

Phép toán Công thức
Trừ(a+c) + (b-d)i
Nhân(ac-bd) + (ad+bc)i
Chia((ac+bd)/(c²+d²)) + ((bc-ad)/(c²+d²))i

Việc dùng struct giúp code tổ chức, dễ đọc và dễ mở rộng cho các phép toán phức tạp hơn.