简单编程(给满意答案分)

来源:百度知道 编辑:UC知道 时间:2024/06/07 10:38:32
#include<iostream.h>

enum BirdType{robin,rooster,canary,sparrow,roadrunner,finch,eagle};

int main()
{
char birdlist[7][12]={"robin","rooster","canary","sparrow","roadrunner","finch","eagle"};

int i,choice;
BirdType MyBird;

cout<<"\n请输入鸟的种类\n";
for(i=0;i<7;++i)
{
cout<<i+1<<" "<<birdlist[i]<<endl;
}

cin>>choice;

MyBird=BirdType(choice-1);

cout<<"\n你输入的是"<<birdlist[MyBird]<<endl;
return 0;
}
char birdlist[7][12]为什么这里要用二维数组呢?用一维数组为什么不行呢?输出的时候为什么又用一维又可以也.比如这点cout<<i+1<<" "<<birdlist[i]<<endl;前面明明是二维没嘛
请大侠详细解释下

因为你定义的是char,只能是单个字符,例如a,b,c
而你要输入的是字符串,例如robin,所以必须用数组来存放。

char birdlist[7][12](7个char类型的数组,每个不大于7字节)={"robin","rooster","canary","sparrow","roadrunner","finch","eagle"};
赋七个字符串,必须使用二维数组

而你这里
cout<<"\n请输入鸟的种类\n";
for(i=0;i<7;++i)
{
cout<<i+1<<" "<<birdlist[i]<<endl;
}
整形,调用的是birdlist的中每个数组的首地址,所以只要一个一维数组。

不会C++的闪过。