Operaciones con numeros complejos en C


18 de Octubre del 2020

Tengo un proyecto en el que tengo que desarrollar un programa que pueda hacer operaciones aritmeticas con numeros complejos, pero no tengo idea de como podria definir que los numeros complejos son de ese tipo, tienen alguna ayuda que me puedan dar?


David Carrero
12 de Agosto del 2026

Hola,

En C no tienes clases, así que la forma habitual es definir una struct para representar el número complejo y funciones que operen sobre ella (en vez de métodos):

#include <stdio.h>

typedef struct {
    double real;
    double imaginario;
} Complejo;

Complejo sumar(Complejo a, Complejo b) {
    Complejo resultado;
    resultado.real = a.real + b.real;
    resultado.imaginario = a.imaginario + b.imaginario;
    return resultado;
}

Complejo multiplicar(Complejo a, Complejo b) {
    Complejo resultado;
    resultado.real = a.real * b.real - a.imaginario * b.imaginario;
    resultado.imaginario = a.real * b.imaginario + a.imaginario * b.real;
    return resultado;
}

void imprimir(Complejo c) {
    printf("%.2f %s %.2fin", c.real, c.imaginario >= 0 ? "+" : "-", c.imaginario < 0 ? -c.imaginario : c.imaginario);
}

int main() {
    Complejo a = {3, 2};
    Complejo b = {1, 4};

    imprimir(sumar(a, b));
    imprimir(multiplicar(a, b));
    return 0;
}

La multiplicación usa la fórmula estándar de números complejos: (a+bi)(c+di) = (ac-bd) + (ad+bc)i. Si tu proyecto también necesita división o módulo, el patrón es el mismo: una función por operación que recibe dos Complejo y devuelve otro.

Si en cambio puedes usar C++, la librería estándar ya trae <complex> con todo esto hecho (std::complex<double>), pero por el enunciado da la sensación de que el ejercicio es precisamente implementarlo a mano.

Un saludo,
David Carrero