声明描述单个视频游戏的结构。 视频游戏有标题,流派,平台,开发者,发行年份,年龄下限,价格和 他们是否支持应用内购买。您需要选择适当的数据类型 要存储在结构中的信息。
到目前为止我的代码:
#include <stdio.h>
#include <string.h>
struct video_game
{
char* title;
char* genre;
char* developer;
int year;
char* platform;
int lower_age;
float price;
char* inapp_purchase;
}game1, game2;
void print_video_game_details()
{
for(int i =1; i<=3; i++)
{
printf("Title: %s", game[i].title); // game[i] is showing an error "undeclared"
printf("Genre: %s", game[i].genre);
printf("Developer: %s", game[i].developer);
printf("year of release: %d", game[i].year);
printf("platform: %s", game[i].platform);
printf("lower age: %d", game[i].lower age);
printf("price: %f", game[i].price); //is showing an error "incompatible"
printf("inapp_purchase: %s", game[i].inapp_purchase);
}
}
int main(void)
{
game1.title = "Candy crush saga";
game1.genre = "Match-Three Puzzle";
game1.developer = "King";
game1.year = "2012";
game1.platform = "Android, ios, Windows Phone";
game1.lower_age = "7";
game1.price = "$0.00";
game1.inapp_purchase = "yes";
print_video_game_details();
}
我无法打印出结构,因为它无法编译。
错误:
prog.c: In function 'print_video_game_details':
prog.c:27:33: error: 'struct video_game' has no member named 'lower'
printf("lower age: %d", game[i].lower age);
^
prog.c:27:40: error: expected ')' before 'age'
printf("lower age: %d", game[i].lower age);
^
prog.c: In function 'main':
prog.c:39:15: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
game[0].year = "2012";
^
prog.c:41:20: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
game[0].lower_age = "7";
^
prog.c:42:16: error: incompatible types when assigning to type 'float' from type 'char *'
game[0].price = "$0.00";
^
答案 0 :(得分:1)
您的代码存在的问题:
printf("lower age: %d", game[i].lower age);
行中,lower age
应为lower_age
。struct video_game game[1];
print_video_game_details()
的数组
i = 0
开始,然后转到i < [however many games there are]
game[0]
,game[1]
等,而不是game1
,game2
等。game[0].year
是一个int,所以不要将2012
放在引号game[0].price
是一个浮点数,所以请不要使用引号并删除美元符号。以下是我们在评论中讨论过的代码。它适用于一个视频游戏。您可以增加video_game game[x]
数字和for循环以支持多个视频游戏。
#include <stdio.h>
#include <string.h>
struct video_game
{
char* title;
char* genre;
char* developer;
int year;
char* platform;
int lower_age;
float price;
char* inapp_purchase;
}game1, game2;
struct video_game game[1];
void print_video_game_details()
{
int i;
for(i = 0; i < 1; i++)
{
printf("Title: %s\n", game[i].title);
printf("Genre: %s\n", game[i].genre);
printf("Developer: %s\n", game[i].developer);
printf("year of release: %d\n", game[i].year);
printf("platform: %s\n", game[i].platform);
printf("lower age: %d\n", game[i].lower_age);
printf("price: %f\n", game[i].price);
printf("inapp_purchase: %s\n", game[i].inapp_purchase);
}
}
int main(int argc, char* argv[])
{
game[0].title = "Candy crush saga";
game[0].genre = "Match-Three Puzzle";
game[0].developer = "King";
game[0].year = 2012;
game[0].platform = "Android, ios, Windows Phone";
game[0].lower_age = 7;
game[0].price = 0.0;
game[0].inapp_purchase = "yes";
print_video_game_details();
}