C语言中虚数如何表示

Python011

C语言中虚数如何表示,第1张

_Complex关键字可以提供比较方便的复数运算,例如:

#include <complex.h>

double imaginary z=5.3I

注意事项:

1. 每个程序中一定包含main()函数,尽管C语言中对函数命名没有限制。

2. printf函数永远不会自动换行,只能用\n来实现, 回车键进行的换行在编译中会出现错误信息。

3. 在vs2008中编译,测试需要加 system("pause");来暂停dos自动退出导致的printf无法显示。

4. 所有自定义变量必须声明才能使用。

扩展资料:

在数学中,虚数是对实数系的扩展。利用复数可以构建四维坐标系,四维坐标系是三维实数坐标系与三维虚数坐标系组合而成的。三维实数坐标系上的点与四维复数坐标系存在映射对应关系,每一个实数坐标点对应两个不同的四维坐标点。因此,虚数只有在四维坐标中才具有现实的数值意义。

我们可以在平面直角坐标系中画出虚数系统。如果利用横轴表示全体实数,那么纵轴即可表示虚数。整个平面上每一点对应着一个复数,称为复平面。横轴和纵轴也改称为实轴和虚轴。在此时,一点P坐标为P(a,bi),将坐标乘上i即点绕圆心逆时针旋转90度。

虚数单位“i”首先为瑞士数学家欧拉所创用,到德国数学家高斯提倡才普遍使用。

#include<stdio.h>

void xushu(int a,int b,int c,int d)

{

    int num1,num2

    num1=a*d+b*c

    num2=-(a*c)+b*d

    if(num2>0)

        printf("(%di+%d)(%di+%d)=%di+%d",a,b,c,d,num1,num2)

    else

        printf("(%di+%d)(%di+%d)=%di%d",a,b,c,d,num1,num2)

}

int main()

{

    int a,b,c,d

    printf("input number1:\n")

    scanf("%di+%d",&a,&b)

    printf("input number2:\n")

    scanf("%di+%d",&c,&d)

    xushu(a,b,c,d)

}

回答的也太快了吧!我刚输完就有这么多了!

还好我这是纯c语言版。

输入数据是实属部分和虚数部分用逗号隔开。

#include <stdio.h>

#include <stdlib.h>

typedef struct

{

double real/*实数部分*/

double vir /*虚数部分*/

}COMPLEX

COMPLEX add(COMPLEX a,COMPLEX b)

COMPLEX substract(COMPLEX a,COMPLEX b)

COMPLEX multiple(COMPLEX a,COMPLEX b)

COMPLEX divide(COMPLEX a,COMPLEX b)

void printC(COMPLEX n)

{

if((n.vir - 0.00) <0)

printf("(%.4lf%.4lfi)",n.real,n.vir)

else

printf("(%.4lf+%.4lfi)",n.real,n.vir)

}

void main()

{

COMPLEX a,b

char c

printf("input real and virtual of complex number a:")

scanf("%lf,%lf",&a.real,&a.vir)

fflush(stdin)

printf("input real and virtual of complex number b:")

scanf("%lf,%lf",&b.real,&b.vir)

c = '+'

printC(a)printf(" %c ",c)printC(b)printf(" = ")

printC(add(a,b))

putchar('\n')

c = '-'

printC(a)printf(" %c ",c)printC(b)printf(" = ")

printC(substract(a,b))

putchar('\n')

c = '-'

printC(a)printf(" %c ",c)printC(b)printf(" = ")

printC(multiple(a,b))

putchar('\n')

c = '/'

printC(a)printf(" %c ",c)printC(b)printf(" = ")

printC(divide(a,b))

putchar('\n')

system("pause")

}

COMPLEX add(COMPLEX a,COMPLEX b)

{

COMPLEX c

c.real = a.real + b.real

c.vir = a.vir + b.vir

return c

}

COMPLEX substract(COMPLEX a,COMPLEX b)

{

COMPLEX c

c.real = a.real - b.real

c.vir = a.vir - b.vir

return c

}

COMPLEX multiple(COMPLEX a,COMPLEX b)

{

COMPLEX c

c.real = a.real * b.real - a.vir * b.vir

c.vir = a.vir * b.real + a.real * b.vir

return c

}

COMPLEX divide(COMPLEX a,COMPLEX b)

{

COMPLEX c

double den = b.real * b.real + b.vir * b.vir

c.real = (a.real * b.real + a.vir * b.vir) / den

c.vir = (a.vir * b.real - a.real * b.vir) / den

return c

}