做封面的地图网站,湖南优度网络科技有限公司,2022世界互联网峰会,成都明腾网站建设公司在本文中#xff0c;我将向您展示一种使用C编程语言实现复数的方法。 请注意#xff0c;使用此处提供的代码没有任何保证。 复数是一个数字#xff0c;例如z#xff0c;表示z realPart i * imaginaryPart#xff0c;其中i是虚数单位#xff0c;有时用j表示。 另外我将向您展示一种使用C编程语言实现复数的方法。 请注意使用此处提供的代码没有任何保证。 复数是一个数字例如z表示z realPart i * imaginaryPart其中i是虚数单位有时用j表示。 另外i * i -1这在查找两个复数的乘积/除法时很重要。 自然我们可以将复数实现为结构 /* Definition of a Complex number: */
typedef struct complex {double realPart;double imaginaryPart;
} Complex; 我们可以按如下方式将接口与实现分开。 首先我们有标题 Complex.h 它定义了Complex结构并包含处理一个或多个Complex数字的函数的原型 /* Complex.h */
#ifndef COMPLEX_H
#define COMPLEX_H
/* Definition of a Complex number: */
typedef struct complex {double realPart;double imaginaryPart;
} Complex;
/* Prototypes for functions to manipulate Complex number(s) (these functions are implemented in file Complex.c): */
Complex addition( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 );
Complex subtraction( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 );
Complex multiplication( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 );
Complex division( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 );
void print( const Complex *pointerToComplexNumber );
#endif 文件Complex.c实现了以上功能 /* Complex.c */
#include stdio.h
#include Complex.h
/* Adds two Complex numbers, returning a new one, without modifying the ones received: */
Complex addition( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 )
{Complex complexNumber3; complexNumber3.realPart pointerToComplexNumber1-realPart pointerToComplexNumber2-realPart;complexNumber3.imaginaryPart pointerToComplexNumber1-imaginaryPart pointerToComplexNumber2-imaginaryPart; return complexNumber3;
}
/* Subtracts two Complex numbers, returning a new one, without modifying the ones received: */
Complex subtraction( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 )
{Complex complexNumber3; complexNumber3.realPart pointerToComplexNumber1-realPart - pointerToComplexNumber2-realPart;complexNumber3.imaginaryPart pointerToComplexNumber1-imaginaryPart - pointerToComplexNumber2-imaginaryPart; return complexNumber3;
}
/* Multiplies two Complex numbers, returning a new one, without modifying the ones received: */
Complex multiplication( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 )
{Complex complexNumber3; complexNumber3.realPart pointerToComplexNumber1-realPart * pointerToComplexNumber2-realPart -pointerToComplexNumber1-imaginaryPart * pointerToComplexNumber2-imaginaryPart; complexNumber3.imaginaryPart pointerToComplexNumber1-realPart * pointerToComplexNumber2-imaginaryPart pointerToComplexNumber1-imaginaryPart * pointerToComplexNumber2-realPart; return complexNumber3;
}
/* Divides two Complex numbers, returning a new one, without modifying the ones received: */
Complex division( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 )
{Complex complexNumber3;double commonDenominator pointerToComplexNumber2-realPart * pointerToComplexNumber2-realPart pointerToComplexNumber2-imaginaryPart * pointerToComplexNumber2-imaginaryPart; complexNumber3.realPart ( pointerToComplexNumber1-realPart * pointerToComplexNumber2-realPart pointerToComplexNumber1-imaginaryPart * pointerToComplexNumber2-imaginaryPart ) / commonDenominator; complexNumber3.imaginaryPart ( pointerToComplexNumber1-imaginaryPart * pointerToComplexNumber2-realPart -pointerToComplexNumber1-realPart * pointerToComplexNumber2-imaginaryPart ) / commonDenominator; return complexNumber3;
}
/* Prints a Complex number in the form ( realPart ) i( imaginaryPart ), without modifying it: */
void print( const Complex *pointerToComplexNumber )
{printf( ( %.4f ) i( %.4f ), pointerToComplexNumber-realPart, pointerToComplexNumber-imaginaryPart );
} 最后我们有一个名为ComplexTest.c的文件该文件在主函数中测试文件Complex.c和Complex.h 这是我们C程序的起点 /* ComplexTest.c */
#include stdio.h
#include Complex.h
int main( void )
{Complex number1;Complex number2;Complex sumOfNumber1WithNumber2;Complex subtractionOfNumber2FromNumber1;Complex multiplicationOfNumber1WithNumber2;Complex divisionOfNumber1PerNumber2; number1.realPart 1.2343;number1.imaginaryPart 4.7621; number2.realPart -3.213;number2.imaginaryPart -9.8; sumOfNumber1WithNumber2 addition( number1, number2 );subtractionOfNumber2FromNumber1 subtraction( number1, number2 );multiplicationOfNumber1WithNumber2 multiplication( number1, number2 );divisionOfNumber1PerNumber2 division( number1, number2 ); printf( Number1 );print( number1 );printf( \nNumber2 );print( number2 );printf( \nNumber1 Number2 );print( sumOfNumber1WithNumber2 );printf( \nNumber1 - Number2 );print( subtractionOfNumber2FromNumber1 );printf( \nNumber1 * Number2 );print( multiplicationOfNumber1WithNumber2 );printf( \nNumber1 / Number2 );print( divisionOfNumber1PerNumber2 );putchar( \n ); return 0;
} 要使用Visual Studio 2013编译该程序请从命令行打开VS2013的“开发人员命令提示符”转到上述三个文件所在的目录然后输入命令cl ComplexTest.c Complex.c。 然后使用以下命令运行程序 综合测试 From: https://bytes.com/topic/c/insights/956447-implementation-complex-numbers-c