问题描述
实现名为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 (将#修改为@)