#include<stdio.h>
int main(){void print(int a[],int k);
puts(" \n动物特征库:\n
1.有毛发 2.有奶 3.有羽毛 4.会飞 5.吃肉\n
6.有犬齿 7.哺乳动物 8.有蹄 9.鸟 10.会下蛋\n
11.有爪 12.眼盯前方 13.反刍动物 14.黄褐色 15.有暗斑点\n
16.有黑色条纹17.有长脖子 18.有长腿 19.不会飞 20.有黑白两色\n
21.会游泳 ");
puts( "请输入该动物的特征:");
/*1虎2金钱豹3斑马4长颈鹿5企鹅6鸵鸟7信天翁8哺乳动物9鸟A食肉动物B有蹄类动物 */
char c[21][12] ={
/*1.有毛发 */"11110001011",
/*2.有奶 */"11110001011",
/*3.有羽毛 */"00001110100",
/*4.会飞 */"00000010100",
/*5.吃肉 */"11001011110",
/*6.有犬齿 */"11000001010",
/*7.哺乳动物 */"11110001011",
/*8.有蹄 */"00110000001",
/*9.鸟 */"00001110100",
/*10.会下蛋 */"00001110100",
/*11.有爪 */"11000001010",
/*12.眼盯前方 */"11000001010",
/*13.反刍动物 */"00110001001",
/*14.黄褐色 */"11010001011",
/*15.有暗斑点 */"01010001011",
/*1虎2金钱豹3斑马4长颈鹿5企鹅6鸵鸟7信天翁8哺乳动物9鸟A食肉动物B有蹄类动物 */
/16.有黑色条纹/"10100001011",
/*17.有长脖子 */"00010001001",
/*18.有长腿 */"00010101101",
/*19.不会飞 */"00000011111",
/20.有黑白两色/"00101101101",
/*21.会游泳 */"00001000100"};
int a[33],b=0,e=0,f=0,h=0,k=22;char d[100];
gets(d);
for(b=0;;){if(d[b]==0){break;}
else if(d[b]!=32&&(d[b+1]==32||d[b+1]==0)){a[e]=d[b]-48;b++;e++;continue;}
else if(d[b]!=32&&d[b+1]!=32){a[e]=(d[b]-48)*10+d[b+1]-48;b+=2;e++;continue;}
else if(d[b]==32)b++;
}for(b=1,a[21]=0;b<=11;b++,h=0){
for(f=0;f<e;f++){
h+=c[a[f]-1][b-1]-48;
}
if(h==e){
switch(b){
case 1:a[k]=b;k++;break;
case 2:a[k]=b;k++;break;
case 3:a[k]=b;k++;break;
case 4:a[k]=b;k++;break;
case 5:a[k]=b;k++;break;
case 6:a[k]=b;k++;break;
case 7:a[k]=b;k++;break;
case 8:a[k]=b;k++;break;
case 9:a[k]=b;k++;break;
case 10:a[k]=b;k++;break;
case 11:a[k]=b;k++;break;}}
else {a[21]++;
}}
if(a[21]==11)printf("无符合");
else {print(a,k);
}
return 0;}
void print(int a[],int k){
int b=0;
if(a[22]<8&&a[23]<8){
for(;k>22;k--){switch(a[k-1]){
case 1:printf("虎 ");break;
case 2:printf("金钱豹 ");break;
case 3:printf("斑马 ");break;
case 4:printf("长颈鹿 ");break;
case 5:printf("企鹅 ");break;
case 6:printf("鸵鸟 ");break;
case 7:printf("信天翁 ");break;
case 8:printf("哺乳动物 ");break;
case 9:printf("鸟 ");break;
case 10:printf("食肉动物 ");break;
case 11:printf("有蹄类动物 ");break;}
if(a[k-2]<8&&b==0){printf("可能是:");b=1;}}}
else if(a[22]<8&&a[23]>=8)switch(a[22]){
case 1:printf("虎 ");break;
case 2:printf("金钱豹 ");break;
case 3:printf("斑马 ");break;
case 4:printf("长颈鹿 ");break;
case 5:printf("企鹅 ");break;
case 6:printf("鸵鸟 ");break;
case 7:printf("信天翁 ");break;
}}
版权归原作者 变秃,但没变强 所有, 如有侵权,请联系我们删除。