定義成結構體 實部和虛部分別定義成double,然后在自己定義運算……
枝江網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)。
如果是C++的話,可以重載+、-、*、\操作符的方式
這個是一個列子,可以參考下
struct complex{
float rmz; //實部
float lmz;//虛部
};
//產(chǎn)生一個復數(shù).
complex getAComplex(float a,float b){
complex Node=new complex();
Node.rmz=a;
Node.lmz=b;
return Node;}
//兩個復數(shù)求和
complex addComplex(complex complex1,complex complex2)
{
complex Node=new complex();
Node.rmz=complex1.rmz+complex2.rmz;
Node.lmz=complex1.lmz+complex2.lmz;
return Node;
}
//求兩個復數(shù)的差
complex subComplex(complex complex1,complex complex2)
{
complex Node=new complex();
Node.rmz=complex1.rmz-complex2.rmz;
Node.lmz=complex1.lmz-complex2.lmz;
return Node;
}
//求兩個復數(shù)的積
complex productComplex(complex complex1,complex complex2)
{
complex Node=new complex();
Node.rmz=complex1.rmz*complex2.rmz-complex1.lmz*complex2.lmz;
Node.lmz=complex1.lmz*complex2.rmz+complex2.lmz*complex2.rmz;
return Node;
}
//求實部
float getComplexRmz(complex complex1)
{
return complex1.rmz;
}
//求虛部
float getComplexLmz(complex complex1)
{
return complex1.lmz;
}
用數(shù)組來表示復數(shù) float a[2],b[2],c[2],s[2];
讀取a、b
FILE *fp;
if((fp=fopen("f:\\a.txt","r+"))!=NULL)
{
fscanf("%f%f",a[0] , a[1] );
fscanf("%f%f",b[0] , b[1] );
fclose(fp);
}
相乘的函數(shù):
void mult(float a[2], float c[2], float result[2])
{
result[0] = a[0] * c[0] - a[1] * c[1] ;
result[1] = a[1] * c[0] + a[0] * c[1] ;
return;
}
調(diào)用:
mult(a, c, s);
1、首先打開vc6.0, 新建一個項目。
2、添加stdio.h頭文件。
3、添加math.h頭文件。
4、添加main主函數(shù)。
5、定義結構體z。
6、定義double類型val變量。
7、初始化z。
8、使用cabs函數(shù)。
9、使用printf打印信息。
10、運行程序,看看結果。
C語言本身沒有復數(shù)這個數(shù)據(jù)類型,但是你可以自己定義:
typedef struct
{
double real; /* 實部 */
double imag; /* 虛部 */
}ComplexNumber;
然后你可以使用ComplexNumber來定義變量,然后用scanf("%f,%f", cn.real, cn.imag);這樣的語句來輸入復數(shù),還可以進行其它任意操作。