代码文本:
#include "stdio.h"
struct PLU{
double r,i;
};
PLU plu_add(PLU a,PLU b,char c){//运算函数
PLU t;
if(c=='+'){//+
t.r=a.r+b.r;
t.i=a.i+b.i;
}
else if(c=='-'){//-
t.r=a.r-b.r;
t.i=a.i-b.i;
}
else if(c=='*'){//*
t.r=a.r*b.r-a.i*b.i;
t.i=a.r*b.i+b.r*a.i;
}
else if(c=='/'){///
t.r=(a.r*b.r+a.i*b.i)/(b.r*b.r+b.i*b.i);
t.i=(a.i*b.r-a.r*b.i)/(b.r*b.r+b.i*b.i);
}
return t;
}
int main(int argc,char *argv[]){
PLU x,y,t;
char f;
printf("Please enter the 2 plural(like a+bi)...\nx = ");
scanf("%lf%c%lf",&x.r,&f,&x.i);
if(getchar(),f=='-')
x.i=-x.i;
printf("y = ");
scanf("%lf%c%lf",&y.r,&f,&y.i);
if(getchar(),f=='-')
y.i=-y.i;
t=plu_add(x,y,'+');
printf("\n(%g%+gi) + (%g%+gi) = %g%+gi\n",x.r,x.i,y.r,y.i,t.r,t.i);
t=plu_add(x,y,'-');
printf("(%g%+gi) - (%g%+gi) = %g%+gi\n",x.r,x.i,y.r,y.i,t.r,t.i);
t=plu_add(x,y,'*');
printf("(%g%+gi) * (%g%+gi) = %g%+gi\n",x.r,x.i,y.r,y.i,t.r,t.i);
t=plu_add(x,y,'/');
printf("(%g%+gi) / (%g%+gi) = %g%+gi\n",x.r,x.i,y.r,y.i,t.r,t.i);
return 0;
}
供参考……
追问感觉看得有点懵
追答哪里懵,说具体点我好解释……
追问额,从t.r开始就懵了。。
追答t是主函数中声明的PLU型结构体变量,它有r和i两个成员,r当作复数的实部,i当作复数的虚部。主函数中t=plu_add(x,y,'+')等就是调用复数运算函数plu_add把复数x、y按第三个参数'+'、'-'、'*'、'/'分别进行运算且把结果赋给t。
主函数中没有独立的r,r在自定义函数plu_add中就是一个简单int型变量。所以主函数中出现r的地方都是t.r,t.r表示结构体变量t中的成员变量r。
f=='-'以及int argc ,char *[]argv这两个参数不懂
追答由于在输入语句scanf("%lf%c%lf",&x.r,&f,&x.i);中用了全%c控制符,所以当输入a-bi形式时,x.i并得不到负号,负号被f接收了,所以用f=='-'判断一下x.i到底是正是负并处理一下。
int argc ,char *[]argv这是C语言主函数的标准定义的部分内容,是调用代码形成.exe文件后直接调用用的。现在的编译器可以允许不写,空着或写个void即可。不过应该知道main的标准定义和各参数的意义才好。
一道数据结构(c语言描述)题,希望大佬帮我看看,萌新不会?
printf("Please enter the 2 plural(like a+bi)...\\nx = ");scanf("%lf%c%lf",&x.r,&f,&x.i);if(getchar(),f=='-')x.i=-x.i;printf("y = ");scanf("%lf%c%lf",&y.r,&f,&y.i);if(getchar(),f=='-')y.i=-y.i;t=plu_add(x,y,'+');printf("\\n(%g...
萌新小白入门C语言——要用什么编程软件写C语言?
C语言是一种广泛使用的通用编程语言,由丹尼斯·里奇在1972年为了开发UNIX操作系统而设计。它被设计为一种面向过程的语言,易于理解和学习。C语言广泛应用于系统编程、嵌入式系统、游戏开发、网络编程、操作系统和硬件驱动程序等领域。要学习C语言,最重要的是动手实践,不断编写代码。学习编程没有速成的方法...
西北工业大学有哪些教授的课是必须要去蹭的?
这个是我和一起上课的同学做的香囊,(最靠近镜头那个白色的是我做的),老师会给大家分发准备好的材料,然后指导制作。水拓画就是在盘子里倒一种粘稠的透明物质,然后在水面(其实不是水)上倒各种颜料,用塑料小棍把颜料划成想要的形状,然后把布料铺在水面,颜料和“水”不互溶,就会粘在布料上...
自学Java怎么入门?
二、数据库 数据库不仅仅是Java开发工程师的必学课程,也是其他语言都需要掌握的技能。用于对交互过程中客户的数据进行存储。该板块包括关系型数据库和非关系型数据库。例如:MySQL、oracle、redis、MongoDB等。数据库学习完毕后,可以将数据存储到数据库中,也可以通过SQL语句从数据库中查询数据,结合Java...
学习编程什么语言最好
但是使用J2EE,新手想要入门还真的不容易。一般在公司直接现学现用的话,会成长较快。第二支是微软公司的C系列与VB系列。国内IT界似乎有种偏见,觉得C#是微软最好的语言,所以目前用的也是最多的。但用的最多,不代表是最好学的,C#的语言特色主要是作为第四代语言,是面向对象型的语言。所以它的...
福州大学有哪些教授的课是必须要去蹭的?
首先给大家推荐的是材料学院的王晨老师,这位老师的本硕博都是在浙江大学毕业的,是我们学院的一位大佬,他有一门课是针对新生的材料导论,对于一些入门的同学很适合去蹭这门课,能提高自己对材料专业的兴趣。对于一些有一定基础或者兴趣的同学,我推荐你们去听听材料学院彭开萍老师的课,她是我们学院的博士...