RomanticsAlanshow11 2024-08-25 15:22 采纳率: 66.7%
浏览 10
已结题

哪里错了 我实在是 搞不懂啊

img

不明白sub调用哪里出现问题了 帮帮我 看看 感谢感谢凑够30个字

  • 写回答

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;
    }
    

    这样修改后,你的代码应该可以正常运行了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日
  • 创建了问题 8月25日