m0_61637823 2021-12-06 09:24 采纳率: 50%
浏览 38
已结题

发一下完整做法…….

编写一个函数
用来,把结构体变量A的地址赋给另一个结构体变量B
达到,修改结构体变量B的值就能修改结构体变量A的值的目的
文件已给出,只需编写函数B
/*
@Author: Wang
@Date: 2021-11-27 00:43:55
@LastEditTime: 2021-11-27 00:43:56
@LastEditors: Wang
/
#include"stdio.h"
typedef struct
{
double member_a;
double member_b;
double member_c;
} struct_B; //结构体类型B
typedef struct
{
double member_A;
double member_B;
struct_B *member_C;
} struct_A; //结构体类型A
struct_A struct_variable_A; //结构体变量A
struct_B struct_variable_B = {1.0f, 2.0f, 3.0f}; //结构体变量B
void function_A(struct_A *struct_variable_C); //函数A声明
function_B(); //函数B声明,需要编写的函数声明
int main(void)
{
scanf("%lf,%lf,%lf",&struct_variable_B.member_a,&struct_variable_B.member_b,&struct_variable_B.member_c); //读入结构体变量B的值
function_A(&struct_variable_A); //调用函数A

printf("%lf\n",struct_variable_A.member_C->member_a); //打印结构体变量A中的值
printf("%lf\n",struct_variable_A.member_C->member_b);
printf("%lf\n",struct_variable_A.member_C->member_c);

return 0;
}
//函数A
void function_A(struct_A *struct_variable_C)
{
struct_variable_C->member_C = function_B(); //调用函数B
}
//函数B,需要编写的函数体
function_B()
{
}

  • 写回答

1条回答 默认 最新

  • 广大菜鸟 2021-12-06 17:32
    关注

    题主,函数缺返回值类型

    struct_B* function_B()
    {
        return &struct_variable_B;
    }
    

    完整:

    #include "stdio.h"
    typedef struct
    {
        double member_a;
        double member_b;
        double member_c;
    } struct_B; //结构体类型B
    typedef struct
    {
        double member_A;
        double member_B;
        struct_B *member_C;
    } struct_A;                                      //结构体类型A
    struct_A struct_variable_A;                      //结构体变量A
    struct_B struct_variable_B = {1.0f, 2.0f, 3.0f}; //结构体变量B
    void function_A(struct_A *struct_variable_C);    //函数A声明
    struct_B* function_B();                                    //函数B声明,需要编写的函数声明
    int main(void)
    {
        scanf("%lf,%lf,%lf", &struct_variable_B.member_a, &struct_variable_B.member_b, &struct_variable_B.member_c); //读入结构体变量B的值
        function_A(&struct_variable_A);                                                                             //调用函数A
        printf("%lf\n", struct_variable_A.member_C->member_a); //打印结构体变量A中的值
        printf("%lf\n", struct_variable_A.member_C->member_b);
        printf("%lf\n", struct_variable_A.member_C->member_c);
    
        return 0;
    }
    //函数A
    void function_A(struct_A *struct_variable_C)
    {
        struct_variable_C->member_C = function_B(); //调用函数B
    }
    //函数B,需要编写的函数体
    struct_B* function_B()
    {
        return &struct_variable_B;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月6日