递归影片-使用具有递归影片续集和打印的结构

问题描述

实现名为Movie的结构类型。使用适当的数据类型和名称 结构的成员。在电影结构中添加一个成员,该成员表示电影是否 是否有续集;该成员应该是指向结构Movie的指针。 在主函数中实例化四个结构变量,表中列出的每个电影一个 以上。对于本练习,请确保每个Movie结构变量都存储在堆中。设置 每个结构的适当成员。 接下来,创建一个名为print_movie的函数,可以将其传递给单个结构Movie 通过引用变量。声明此功能的原型。 使用函数递归来打印电影的详细信息及其续集(如果有)。当侏罗纪 Park结构变量引用传递到print_movie函数,以下输出 必须生成

我已经在这个问题上待了好几个小时,这是我已经学到的,而且不知道下一步要去哪里。我已经看完了讲座幻灯片和录音,但我不知道该怎么办要做

如果有人解释递归和指针,我将非常感激,我已经做了一个星期,但我仍然不知道何时使用指针以及何时去做。这只是不粘的东西...

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <crtdbg.h>

struct Movie
{
char movies_name[32];
int year;
int score;
struct Movie* sequel;
};

struct print_movie(*Jurrassic_Park);

int main(void)
{
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

struct Movie* Jurassic_Park = 0;
Jurassic_Park = malloc(sizeof(struct Movie)*4);

sprintf(Jurassic_Park[0].movies_name,"Jurassic Park");
Jurassic_Park[0].year = 1993;
Jurassic_Park[0].score = 93;
*Jurassic_Park[0].sequel= Jurassic_Park[1];

sprintf(Jurassic_Park[1].movies_name,"The Lost World: Jurassic Park");
Jurassic_Park[1].year = 1997;
Jurassic_Park[1].score = 51;
*Jurassic_Park[1].sequel = Jurassic_Park[2];

sprintf(Jurassic_Park[2].movies_name,"Jurassic Park III");
Jurassic_Park[2].year = 2001;
Jurassic_Park[2].score = 50;
*Jurassic_Park[2].sequel = Jurassic_Park[3];

sprintf(Jurassic_Park[3].movies_name,"Jurassic World");
Jurassic_Park[3].year = 2015;
Jurassic_Park[3].score = 72;
Jurassic_Park[3].sequel = NULL;

print_movie(Jurassic_Park);

return 0;

    
    struct print_movie(*Jurrassic_Park)
    {
    printf("Name: %s",Jurrassic_Park[k].movies_name);
    printf("Year of Release: %d",Jurrassic_Park[k].year);
    printf("Rotten Tomatoes: %d%%",Jurrassic_Park[k].score)
    
    }

我当时在考虑使用for循环,但不确定是否是要打印此问题的方式,即是说要在每部电影中多次调用它,还是应该使用a for循环。

编辑: 我已经运行了程序,但是它没有打印或显示任何内容

这是我的打印功能

void print_movie(struct Movie* Jurrassic_Park)
{
for (int k = 0; k < 4; k++)
{
    printf("Name: %s",Jurrassic_Park[k].score);
}

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)