重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
创新互联致力于互联网品牌建设与网络营销,包括成都网站建设、成都网站设计、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联核心团队十年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。
struct complex
{
int re;
int im;
};
void add(struct complex a, struct complex b, struct complex *c)
{
c-re=a.re+b.re;
c-im=a.im+b.im;
}
void minus(struct complex a, struct complex b, struct complex *c)
{
c-re=a.re-b.re;
c-im=a.im-b.im;
}
int main()
{
struct complex x,y,s,p;
scanf("%d%d",x.re,x.im);
scanf("%d%d",y.re,y.im);
add(x,y,s);
printf(" sum=%5d+%5di\n",s.re,s.im);
minus(x,y,p);
printf(" product=%5d+%5di\n",p.re,p.im);
return 0;
}
1、首先打开vc6.0, 新建一个项目。
2、添加stdio.h头文件。
3、添加math.h头文件。
4、添加main主函数。
5、定义结构体z。
6、定义double类型val变量。
7、初始化z。
8、使用cabs函数。
9、使用printf打印信息。
10、运行程序,看看结果。
定义成结构体 实部和虚部分别定义成double,然后在自己定义运算……
如果是C++的话,可以重载+、-、*、\操作符的方式
定义一个struct作为复数,然后分别定义加减剩除运算。可以增加一个函数printcomplex来在主函数中以数学的形式输出复数。
typedef struct complex
{
double real; //实部
double image; //虚部
} COMPLEX;
COMPLEX add(COMPLEX a,COMPLEX b) //加法
{
COMPLEX sum;
sum.real = a.real+b.real;
sum.image = a.image+b.image;
return sum;
}
COMPLEX sub(COMPLEX a,COMPLEX b) //减法
{
COMPLEX diff;
diff.real = a.real-b.real;
diff.image = a.image-b.image;
return diff;
}
COMPLEX mul(COMPLEX a,COMPLEX b) //乘法
{
COMPLEX acc;
acc.real = a.real*b.real-a.image*b.image;
acc.image = a.real*b.image+a.image*b.real;
return acc;
}
COMPLEX divi(COMPLEX a,COMPLEX b) //除法
//除法去分母可以转换为乘法
{
COMPLEX quo;
double den = b.real*b.real+b.image*b.image; //分母
/* 先判断除数是否为0,因为均为double型,所以不能 直接与0作比较,而要用绝对值是否小于某个极小值e(读伊夫西龙???)来判断是否为0,这里取e=10e-10 */
if ((abs(b.real)10e-10) (abs(b.image)10e-10))
{
printf("Divivd by Zero");
exit(0); //强制退出程序
}
quo.real = a.real*b.real+a.image*b.image;
quo.real /= den;
quo.image = a.image*b.real+a.real*b.image;
quo.image /= den;
return quo;
}
void printcom(COMPLEX a) //输出复数a
{
printf("%lf+%lfi",a.real,a.image);
}