同理,代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 54
struct poker /*定义结构体存储成绩*/
{
char allname[N]; /*扑克牌全称*/
char color[N]; /*扑克牌花色*/
int lv; /*扑克牌等级(黑桃>红桃>梅花>方块)*/
int num; /*扑克牌数字*/
} pk[N];
void FlowerPoker()
{
int i;
char userflower[100][10]; /*用户输入的花色中文*/
if(pk[1].lv <= 0) /*提示用户先运行程序:从文件存入成绩*/
{
printf("Warning!\n"
"你还未存入文件!\n"
"请先运行功能1:文件读取存储一副扑克牌,并显示\n");
return 0;
}
printf("请输入想要查询的扑克牌花色\n"
"提示:黑桃、红桃、梅花、方块还有大小王\n"); /*小科普:黑桃(Spade)、红桃(Heart)、方块(Diamond)、梅花(Club)、大小王(Joker)*/
scanf("%s",&userflower);
printf("\n");
if(strcmp("黑桃", userflower) == 0)
{
printf("黑桃扑克牌有:\n");
for(i=0; i<N; i++)
{
if(pk[i].lv == 4)
{
printf("%s\n",pk[i].allname);
}
}
}
else if(strcmp("红桃", userflower) == 0)
{
printf("红桃扑克牌有:\n");
for(i=0; i<N; i++)
{
if(pk[i].lv == 3)
{
printf("%s\n",pk[i].allname);
}
}
}
else if(strcmp("梅花", userflower) == 0)
{
printf("梅花扑克牌有:\n");
for(i=0; i<N; i++)
{
if(pk[i].lv == 2)
{
printf("%s\n",pk[i].allname);
}
}
}
else if(strcmp("方块", userflower) == 0)
{
printf("方块扑克牌有:\n");
for(i=0; i<N; i++)
{
if(pk[i].lv == 1)
{
printf("%s\n",pk[i].allname);
}
}
}
else if(strcmp("大小王", userflower) == 0)
{
printf("顾名思义,大小王其实就是:\n");
for(i=0; i<N; i++)
{
if(pk[i].lv == 5)
{
printf("%s\n",pk[i].allname);
}
}
}
else
{
printf("输入错误字符!请重新输入!");
}
}
看看上面的 typedef 那一行结束,是不是少了分号。
你的完整代码看下,有编译错误。