如何解决递归影片-使用具有递归影片续集和打印的结构
实现名为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 举报,一经查实,本站将立刻删除。