本文目錄一覽:
怎樣用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++
原創文章,作者:XFBE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/142660.html