
1条回答 默认 最新
吃不了席 2024-08-25 15:23关注以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
根据你提供的代码,问题出在
sub函数的调用上。在main函数中,你调用了sub(&sub, &c1, &c2);,但是sub函数的参数类型是Complex* sub, Complex* c1, Complex* c2,这里的sub应该是一个指针,而不是一个结构体。所以你需要创建一个Complex*类型的变量来接收sub函数的返回值。你可以修改main函数中的相应部分,如下所示:int main(){ Complex c1; Complex c2; Complex sum; Complex *sub_result; // 修改这里,创建一个指针变量 create(&c1,8.0,6.0); create(&c2,5.0,4.0); cout<<"复数c1:"<<c1.shibu<<"+"<<c1.xubu<<"i"<<endl; cout<<"复数c2:"<<c2.shibu<<"+"<<c2.xubu<<"i"<<endl; //复数相加 add(&sum,&c1,&c2); cout<<"相加后的复数为:"; cout<<sum.shibu<<"+"<<sum.xubu<<"i"<<endl; sub_result = sub(&sub,&c1,&c2); // 修改这里,将sub函数的返回值赋给指针变量 cout<<"相减后的复数为:"; cout<<sub_result->shibu<<"+"<<sub_result->xubu<<"i"<<endl; // 修改这里,使用指针变量访问结构体成员 return 0; }这样修改后,你的代码应该可以正常运行了。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报