本文目录一览:
怎样用C语言输入或者输出一个复数?详细讲解一下哟.
C语言本身没有复数这个数据类型,但是你可以自己定义:
typedef struct
{
double real; /* 实部 */
double imag; /* 虚部 */
}ComplexNumber;
然后你可以使用ComplexNumber来定义变量,然后用scanf("%f,%f", cn.real, cn.imag);这样的语句来输入复数,还可以进行其它任意操作。
C语言关于复数
#include stdio.h
typedef struct {
float r;
float i;
}Complex;
Complex readComlexNumber() {
Complex n;
printf("Input real part:");
scanf("%f", n.r);
printf("Input imaginary part:");
scanf("%f", n.i);
return n;
}
Complex sumComplex(Complex a, Complex b) {
Complex c;
c.r = a.r + b.r;
c.i = a.i + b.i;
return c;
}
Complex differeneComplex(Complex a, Complex b) {
Complex c;
c.r = a.r-b.r;
c.i = a.i-b.i;
return c;
}
Complex multiplyComplex(Complex a, Complex b) {
Complex c;
c.i = a.r * b.i + a.i*b.r;
c.r = a.r * b.r - a.i*b.i;
return c;
}
Complex divideComplex(Complex a, Complex b) {
Complex c;
c.r = (a.r*b.r+a.i*b.i)/(b.r*b.r+b.i*b.i);
c.i = (a.i*b.r-a.r*b.i)/(b.r*b.r+b.i*b.i);
return c;
}
void printComplex(Complex n) {
printf("%.2f+%.2fi", n.r, n.i);
}
int main(){
Complex a, b, c;
printf("Input Complex number a:\n");
a = readComlexNumber();
printf("Input Complex number b:\n");
b = readComlexNumber();
printf("The 2 Complex a b is :\n");
printComplex(a); printf(" and "); printComplex(b);
//sum
c = sumComplex(a, b);
printf("\n (a+b)="); printComplex(c);
//diff
c = differeneComplex(a, b);
printf("\n (a-b)="); printComplex(c);
//multiply
c = multiplyComplex(a, b);
printf("\n (a*b)="); printComplex(c);
//divide
c = divideComplex(a, b);
printf("\n (a/b)="); printComplex(c);
return 0;
}
C语言 复数表示与求和
在数学中一个复数可以定义为 (z=a + bi) 的形式。 C 语言在 ISO C99 时就引入了复数类型。它是通过 complex.h 中定义的。 我们可以使用 complex , __complex__ , 或 _ComplexI 类型符号来表示。
在C语言中有三种复数类型,分别为 float complex , double complex , long double complex 。他们之间 的区别就是表示复数中实部和虚步的数的数据类型不同。 complex 其实就是一个数组,数组中有两个元素,一个表示复数的实部,一个表示复数的虚部。
源代码如下:
#include stdio.h
#include math.h
#include stdlib.h
double sum(double* x);
void main()
{
double *a,s=0.0;
a=(double*)malloc(sizeof(double));
*a=5;
s=sum(a);
printf("求和的结果是: %lf\n",s);
}double sum(double* x)
{
int j=0;
double s=0.0;
for(j=0;j=3;j++)
{
s=s+pow(*x,j);
}
s=s*2;
return s;
}
扩展资料
输入任意两个复数差与商的源代码如下
typedef struct{
float r;
float im;
Complex;
Complex res;
Complex* add(Complex* a, Complex* b) {
res.r = a-r + b-r;
res.im = a-im + b-im;
return res;
}
Complex* div(Complex* a, Complex* b) {
float d = (b-r*b-r + b-im*b-im);
res.r = (a-r*b-r + a-im*b-im)/d;
res.im = (a-im*b-r - a-r*b-im)/d;
return res;
C语言(有关复数)
你在VC中得不到正确的结果是因为printf函数的描述符用错了,把%d改为%f
在TC中编译错误是因为TC比VC检查要严格,是一个标准的C编译器,而VC其实是一个VC++编译器
在TC中声明了结构之后定义结构变量不能省略struct关键字,如要省略,则必须给该结构类型起个别名。对于你的程序来说,只要把复数类型声明改为如下方式即可,你试试吧:
typedef struct {
double real;
double imag;
} complex;
C语言中,复数是什么意思?
c语言不支持复数,但可以自己定义一个结构体代表复数。所谓共轭复数就是:两个复数相加,等于实数(虚数和等于0),这样的两个复数就是共轭复数。如果想用复数,可以考虑c++