题目描述
解题思路
一开始只有a有确定的值,在执行一些赋值操作后,输出哪些字母有确定的值.
注意如果a一开始被未知的字母赋值,最后一定是输出none.
参考代码
#include <stdio.h>
#include <string.h>
int main()
{
int n,i;
bool arr[128];
char s[5];
while (~scanf("%d",&n) && n!=-1){
memset(arr,false,sizeof(arr));
arr['a'] = true;//a有值,true
for (i = 0;i < n;i++){
scanf("%s",s);
arr[s[0]] = (arr[s[2]]?true:false);
}
bool flag = false,first = true;
for (i = 'a';i <= 'z';i++)
if (arr[i]){
if (first){
printf("%c",i);
first = false;
}
else
printf(" %c",i);
flag = true;
}
if(!flag)
printf("none");
printf("\n");
}
return 0;
}