當前位置:首頁 » 編程語言 » 實部相加虛部相加c語言怎麼實現
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

實部相加虛部相加c語言怎麼實現

發布時間: 2022-10-23 11:13:00

1. c語言復數四則運算

我們設計一個可進行復數運算的演示程序。要求實現下列六種基本運算
:1)由輸入的實部和虛部生成一個復數
;2)兩個復數求和;
3)兩個復數求差;
4)兩個復數求積,
5)從已知復數中分離出實部;
6)從已知復數中分離出虛部。
運算結果以相應的復數或實數的表示形式顯示(最好用結構體的方法)
要是能用c++和stl,可以這樣寫#include <complex>#include <iostream>void main(){ using namespace std; complex<double> a(3, 2); complex<double> b(5, 6); complex<double> result(0,0); result = a*b/(a+b); cout << result;}
下面是具體的操作:

stdio.h>
#include<conio.h>
#include<stdlib.h>
#define ERR -1
#define MAX 100 /*定義堆棧的大小*/
int stack[MAX]; /*用一維數組定義堆棧*/
int top=0; /*定義堆棧指示*/

int push(int i) /*存儲運算數,入棧操作*/
{
if(top<MAX)
{
stack[++top]=i; /*堆棧仍有空間,棧頂指示上移一個位置*/
return 0;
}
else
{
printf("The stack is full");
return ERR;
}
}
int pop() /*取出運算數,出棧操作*/
{
int var; /*定義待返回的棧頂元素*/
if(top!=NULL) /*堆棧中仍有元素*/
{
var=stack[top--]; /*堆棧指示下移一個位置*/
return var; /*返回棧頂元素*/
}
else
printf("The stack is empty!\n");
return ERR;
}
void main()
{
int m,n;
char l;
int a,b,c;
int k;
do{
printf("\tAriothmatic Operate simulator\n"); /*給出提示信息*/
printf("\n\tPlease input first number:"); /*輸入第一個運算數*/
scanf("%d",&m);
push(m); /*第一個運算數入棧*/
printf("\n\tPlease input second number:"); /*輸入第二個運算數*/
scanf("%d",&n);
push(n); /*第二個運算數入棧*/
printf("\n\tChoose operator(+/-/*//):");
l=getche(); /*輸入運算符*/
switch(l) /*判斷運算符,轉而執行相應代碼*/
{
case '+':
b=pop();
a=pop();
c=a+b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
case '-':
b=pop();
a=pop();
c=a-b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
case '*':
b=pop();
a=pop();
c=a*b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
case '/':
b=pop();
a=pop();
c=a/b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
}
printf("\tContinue?(y/n):"); /*提示用戶是否結束程序*/
l=getche();
if(l=='n')
exit(0);
}while(1);
}

2. 用C++實現復數運算complex a(2,5),b(7,8),c(x,y)實部和實部相加,虛部同理,即x=2+7;y=5+8,即c為(9,13)

是不是讓你設計一個復數類?如果是的話就簡單了:)
//定義復數類complex
class complex{
private:
int real; //實部
int image; //虛部
public:
complex(int x=0,int y=0){ real = x; image = y; } //構造函數

//重載加號運算符,功能為:兩個復數對象相加
friend complex operator + (const complex& a, const complex& b)
{
complex c;
c.real = a.real + b.real;
c.image = a.image + b.image;
return c;
}
}

//使用
complex a(2,5),b(7,8),c;
c = a + b;

3. 寫一個c語言程序(輸入兩個復數(格式如2+3i),輸出兩個復數相加的結果。)

#include<stdio.h>

int main()
{
int x1,y1, x2, y2;

printf("Please input complex 1:");
scanf("%d+%di", &x1, &y1);
printf("Please input complex 2:");
scanf("%d+%di", &x2, &y2);
printf("The sum is=%d+%di\n", x1+x2, y1+y2);
return 0;
}

以上程序是最簡單的形式,輸入時要注意只能x+yi這樣輸入,各個字元間不能有空格

4. c語言 復數的加減法 滿足手寫規則

輸入輸出樣例裡面的分號
,不確定是真會輸出,還是只是分隔輸入輸出。
常見的應該沒有分號。輸入1+i
2輸出3+i
這個程序,
麻煩在於如何將輸入的數據,轉為復數。
可以先將輸入
存為兩個字元串,對每個字元串進行解析,轉為復數。
對於每個字元串,先查找是否存在i,這個很簡單,如果有,那麼一定是最後一個。
如果不存在i,那麼虛部為0,將字元串轉為實部即可。
如果存在i,那麼查找是否存在+或者-,如果不存在,說明沒有實部,實部設置為0
如果存在只有-,
同時-為字元串第一個元素,
那麼一樣沒有實部。
如果存在+,或者存在不是首元素的-,說明同時有實部和虛部,區分兩部分,分別轉換。
轉換後,得到復數,簡單的相加,得到結果。
輸出時,一樣要判斷實部,虛部是否為0,然後再根據復數規則輸出。
這部分相對要簡單的多了。

5. 編程: 輸入兩個復數的實部和虛部求和,差積

樓上幾位光說不寫~~~~~~~
#include<stdio.h>
void sddf(int x1,int y1,int x2,int y2);
void subf(int x1,int x2,int y1,int y2);
void mulf(int x1,int x2,int y1,int y2);
void prtf(int a,int b);
void main()
{
int x1,y1,x2,y2;
printf("輸入復數a的實部x1=");
scanf("%d",&x1);
printf("輸入復數a的虛部y1=");
scanf("%d",&y1);
printf("輸入復數b的實部x2=");
scanf("%d",&x2);
printf("輸入復數b的虛部y2=");
scanf("%d",&y2);
printf("\n");
sddf(x1,y1,x2,y2);
subf(x1,y1,x2,y2);
mulf(x1,y1,x2,y2);
}

void prtf(int a,int b) /*輸出函數*/
{
printf("%d",a);printf("+");printf("(%d",b);printf("i)\n");
}

void sddf(int x1,int y1,int x2,int y2) /*加運算*/
{
int a,b;
a=x1+x2;
b=y1+y2;
printf("復數之和為:");
prtf(a,b);
}
void subf(int x1,int x2,int y1,int y2) /*減運算*/
{
int a,int b;
a=x1-x2;
b=y1-y2;
printf("復數之差為");
prtf(a,b);
}
void mulf(int x1,int x2,int y1,int y2) /*乘積運算*/
{
int a,b;
a=x1*x2-y1*y2;
b=x1*y2+x2*y1;
printf("復數之積為:");
prtf(a,b);

}

6. 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 ",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;
}

(6)實部相加虛部相加c語言怎麼實現擴展閱讀

輸入任意兩個復數差與商的源代碼如下

typedefstruct{

floatr;

floatim;

Complex;

Complexres;

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){

floatd=(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;

7. 輸入實部和虛部,求該復數 C語言

#include "stdio.h"

main()
{
float a,b;
printf("input a and b:");
scanf("%f %f",&a,&b);
printf(">>%.g+%.gi\n",a,b);
}

8. 設計一個c++程序,實現兩個復數相加。

#include "iostream.h"
typedef struct
{
float real;
float imag;
}complex;\\先定義一個復數型變數
float a=0,b=0;
void complex_add()
{\\定義復數相加的函數
complex z1,z2;
cout<<"請輸入第一個復數:"<<endl;
cin>>z1.real>>z1.imag;
if(z1.imag<0)
cout<<"第一個復數為z1="<<z1.real<<z1.imag<<"j"<<endl;
if(z1.imag==0)
cout<<"第一個復數為z1="<<z1.real<<endl;
if(z1.imag>0)
cout<<"第一個復數為z1="<<z1.real<<"+"<<z1.imag<<"j"<<endl;
cout<<endl;
cout<<endl;

cout<<"請輸入第二個復數:"<<endl;
cin>>z2.real>>z2.imag;
if(z2.imag<0)
cout<<"第二個復數為z2="<<z2.real<<z2.imag<<"j"<<endl;
if(z2.imag==0)
cout<<"第二個復數為z2="<<z2.real<<endl;
if(z2.imag>0)
cout<<"第二個復數為z2="<<z2.real<<"+"<<z2.imag<<"j"<<endl;
a=z1.real+z2.real;
b=z1.imag+z2.imag;
}
void main()
{
complex_add();
cout<<"兩個復數之和為:"<<endl;
if(b<0)
cout<<"z="<<a<<b<<"j"<<endl;
if(b==0)
cout<<"z="<<a<<endl;
if(b>0)
cout<<"z="<<a<<"+"<<b<<"j"<<endl;
}

9. C語言函數問題

complex complex::operator+(const complex &c)
{
return complex(real+c.real,image+c.image);//這個函數傳一個對象進去,
這段程序意思是 實數再加一個實數,虛數再加一個虛數?
}
這個函數的意思是操作符重載,通俗點說就是,定義當兩個你定義的complex對象用+連接的時候,程序是如何執行的,否則,程序不知道當你用+號連接兩個complex對象的時候怎麼執行的。
對於復數相加的話,就是實部與實部相加,虛部與虛部相加,這個沒有錯