djdjd13764dhtb 2023-02-20 17:08 采纳率: 50%
浏览 25
已结题

为什么vscode报错了,如何解决?(语言-c语言)

这运行不了

#include <stdio.h>
#include <stdlib.h>

typedef struct {
    float realpart;
    float imagpart;
    
}complex;
complex* assign(complex* A, float real, float imag);
int main()
{
    
    complex* z;
    z = (complex*)malloc(sizeof(complex));
    
    assign(&z, 3.0, 1.0);

    printf("%f+%fi\n", z->realpart, z->imagpart);
    free(z);

    system("pause");
}
complex* assign(complex *A, float real, float imag)
{
    A->realpart = real;
    A->imagpart = imag;
    return A;

}

  • 写回答

2条回答 默认 最新

  • MarkHan_ 2023-02-20 17:12
    关注

    在您的代码中,assign函数的参数类型应该是complex*而不是complex**。因此,您应该将函数调用的参数更改为assign(z, 3.0, 1.0)而不是assign(&z, 3.0, 1.0)。此外,您也需要包含头文件<conio.h>来使用system函数。修改后的代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    
    typedef struct {
        float realpart;
        float imagpart;
    } complex;
    
    complex* assign(complex* A, float real, float imag);
    
    int main()
    {
        complex* z;
        z = (complex*)malloc(sizeof(complex));
        assign(z, 3.0, 1.0);
        printf("%f+%fi\n", z->realpart, z->imagpart);
        free(z);
        system("pause");
    }
    
    complex* assign(complex* A, float real, float imag)
    {
        A->realpart = real;
        A->imagpart = imag;
        return A;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月28日
  • 已采纳回答 2月20日
  • 创建了问题 2月20日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看