作者 龚雄兴
单位 湖北文理学院
本题目要求读入4个整数a,b,c,d,根据这4个整数构造两个复数:a+bi和c+di,然后输出它们,并输出它们的和,差,积,商以及上述结果中的最大者(实,虚部运算时均在整数范围内进行运算)。 两个复数大小的比较约定为:先比实部(实部大或小即认为整个复数大或小),实部相同时,比较虚部的大小,若虚部也相同,认为两个复数相等。 还需要注意复数的输出习惯:如:0+0i-->{0}, 0-8i-->{-8i},-3+0i-->{-3},3+-4i-->{3-4i}
输入格式:
输入四个整数,以空格分隔。题目确保输入的第二个复数非零。
输出格式:
分别在七行中输出七个复数,分别是:这两个复数,它们的和,差,积,商及四个运算中的最大值。
输入样例:
3 -4 -3 4
结尾无空行
输出样例:
在这里给出相应的输出。例如:
{3-4i}
{-3+4i}
{0}
{6-8i}
{7+24i}
{-1}
{7+24i}
结尾无空行
下面是我写的代码,有一个测试点总过不去,还没有提示,请指教
#include <stdio.h>
struct Complex{
int shibu;
int xubu;
}number1,number2,number3,number4,number5,number6,MaxNumber;
void show(struct Complex number){
if(number.xubu>0){
printf("{%d+%di}\n",number.shibu,number.xubu);
}
if(number.xubu<0){
printf("{%d%di}\n",number.shibu,number.xubu);
}
if((number.xubu==0)&&(number.shibu!=0)){
printf("{%d}\n",number.shibu);
}
if((number.xubu!=0)&&(number.shibu==0)){
printf("{%di}\n",number.xubu);
}
if((number.xubu==0)&&(number.shibu==0)){
printf("{0}\n");
}
}
void jia(struct Complex number1,struct Complex number2){
number3.shibu=number1.shibu+number2.shibu;
number3.xubu=number1.xubu+number2.xubu;
show(number3);
}
void jian(struct Complex number1,struct Complex number2){
number4.shibu=number1.shibu-number2.shibu;
number4.xubu=number1.xubu-number2.xubu;
show(number4);
}
void cheng(struct Complex number1,struct Complex number2){
number5.shibu=number1.shibu*number2.shibu-number1.xubu*number2.xubu;
number5.xubu=number1.xubu*number2.shibu+number2.xubu*number1.shibu;
show(number5);
}
void chu(struct Complex number1,struct Complex number2){
number6.shibu=(number1.shibu*number2.shibu+number1.xubu*number2.xubu)/(number2.shibu*number2.shibu+number2.xubu*number2.xubu);
number6.xubu=(number1.xubu*number2.shibu-number1.shibu*number2.xubu)/(number2.shibu* number2.shibu+number2.xubu*number2.xubu);
show(number6);
}
void bijiao(struct Complex number){
if(number.shibu>MaxNumber.shibu)
{
MaxNumber.shibu=number.shibu;
MaxNumber.xubu=number.xubu;
}
if((number.shibu==MaxNumber.shibu)&&(number.xubu>MaxNumber.xubu))
{
MaxNumber.shibu=number.shibu;
MaxNumber.xubu=number.xubu;
}
}
int main() {
scanf("%d %d %d %d",&number1.shibu,&number1.xubu,&number2.shibu,&number2.xubu);
MaxNumber.shibu=0;
MaxNumber.xubu=0;
show(number1);
show(number2);
jia(number1,number2);
jian(number1,number2);
cheng(number1,number2);
chu(number1,number2);
bijiao(number3);
bijiao(number4);
bijiao(number5);
bijiao(number6);
show(MaxNumber);
return 0;
}