重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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++的话,可以重载+、-、*、\操作符的方式
/*
c语言复数运算
*/
#includestdio.h
#includestdlib.h
typedef struct
{
double r,i; //r为实部,i为虚部
}complex;
complex* add(complex *a,complex *b); //复数a + 复数b
complex* minus(complex *a,complex *b); //复数a - 复数b
complex* multiply(complex *a,complex *b); //复数a * 复数b
void printComplex(complex *a); //输出
complex* add(complex *a,complex *b) {
complex *add;
add-r =a-r+b-r;
add-i =a-i+b-i;
return add;
}
complex* minus(complex *a,complex *b)
{
complex *minus;
minus-r =a-r-b-r;
minus-i =a-i-b-i;
return minus;
}
complex* multiply(complex *a,complex *b)
{
complex *multiply;
multiply-r = a-r*b-r-a-i*b-i;
multiply-i = a-i*b-r+a-r*b-i;
return multiply;
}
void printComplex(complex *a) //输出要注意虚部有负数的情况
{
if(a-r!=0)
printf("%.2lf",a-r); //不要断行,先输出实部
else
printf("0.00");
if(a-i0) //大于0,正常输出+虚部
printf(" + %.2lfi\n",a-i);
else if(a-i0) //虚部是负数,不用输出+号了,直接输出负数
printf(" %.2lfi\n",a-i);
else
printf(" + 0.00i\n");//虚部为0
}
帮你改了下,再去试试吧。一时之间我也想不出还有什么漏洞了。祝好运。如果是自己写主函数的话,改一改那个输入吧,输入很容易会造成问题的
这一句: scanf("...%f %c ",...,c),一个不好输入就会出错,c可能会获取到空白。
这个是一个列子,可以参考下
struct complex{
float rmz; //实部
float lmz;//虚部
};
//产生一个复数.
complex getAComplex(float a,float b){
complex Node=new complex();
Node.rmz=a;
Node.lmz=b;
return Node;}
//两个复数求和
complex addComplex(complex complex1,complex complex2)
{
complex Node=new complex();
Node.rmz=complex1.rmz+complex2.rmz;
Node.lmz=complex1.lmz+complex2.lmz;
return Node;
}
//求两个复数的差
complex subComplex(complex complex1,complex complex2)
{
complex Node=new complex();
Node.rmz=complex1.rmz-complex2.rmz;
Node.lmz=complex1.lmz-complex2.lmz;
return Node;
}
//求两个复数的积
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;
}