Problem Description
计算两个复数之和。
Input Description
在两行中分别输入两个复数a+bi,a和b均为正整数。
Output Description
在一行中输出两个复数的和。
Sample Input
1+2i
3+4i
Sample Output
(1+2i)+(3+4i)=4+6i
湖北民院oj复数的和
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
技术专家团-小桥流水 2022-02-21 17:07关注写个复数类,一个实数,一个虚数,做个+重载就可以了。或者直接读取4个数分别计算也行。

代码如下:
#include <stdio.h> void trans(char* s,int* a,int* b,char* ch) { int i=0; //计算a1 *a=0; *b=0; while(s[i]>='0'&&s[i]<='9') { *a = *a*10 + s[i]-'0'; i++; } //过滤空格 while(s[i]==' ') i++; *ch = s[i]; i++; //过滤空格 while(s[i]==' ') i++; //计算b while(s[i]>='0'&&s[i]<='9') { *b = *b*10 + s[i]-'0'; i++; } } int main() { char s1[20],s2[20]; int a1,a2,b1,b2; int c,d; char ch1='+',ch2='+'; scanf("%s",s1); scanf("%s",s2); trans(s1,&a1,&b1,&ch1); trans(s2,&a2,&b2,&ch2); if(ch1=='-') b1 = -b1; if(ch2=='-') b2 = -b2; c = a1+a2; d = b1+b2; if(d>0) printf("(%d%c%di)+(%d%c%di)=%d+%di",a1,ch1,b1,a2,ch2,b2,c,d); else if(d==0) printf("(%d%c%di)+(%d%c%di)=%d",a1,ch1,b1,a2,ch2,b2,c); else printf("(%d%c%di)+(%d%c%di)=%d%di",a1,ch1,b1,a2,ch2,b2,c,d); return 0; }解决评论 打赏 举报 编辑记录无用 1