关于结构体的一道题~~急需大虾们帮助c++

明天要交作业,可是这道题怎么也做不出来,好乱啊,求大虾帮助。。。。
题目:建立一个是与描述碗和勺子的结构体,有关信息是:两者都有货号、价格、颜色,不同的是碗的大小用口径来表示,勺子的大小是枚举类型,分大、中、小三种。现有勺子大小是中,将其表现出来。小弟写了一个,可是最终总是显示数字1,而不是medium,求大虾指点~~~
#include <iostream>
using namespace std;
struct bowl{
int No;
int price;
char color;
float size;
};
struct spoon{
int No;
int price;
char color;
struct{
enum {small,medium,big}shaozi;
}a;
}b;
void main()
{
b.a.shaozi = b.a.medium;
cout<<b.a.shaozi;

}

程序没有错误。错误在于你错误地理解了联合.
enum {small,medium,big}shaozi; 其实联合只是为了可读性。其实small medium big相当于 0,1,2.只是换了一种表达的方法。
switch(b.a.shaozi)
{
case 0:cout<<"small";
case 1:cout<<"medium";
case 2:cout<<"big";
}
楼上的方法是可行的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-26
注意枚举的类型是整形数,enum {small,medium,big}这个枚举里3个分别对应的值是0,1,2,并不是字符串!你要显示字符串就用IF判断以后来输出一个字符串
第2个回答  2010-07-26
switch(b.a.shaozi)
{
case 0:cout<<"small";
case 1:cout<<"medium";
case 2:cout<<"big";
}