赋值问题

 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     int n,i,vis[26];
 6     char s[10];
 7     while(scanf("%d",&n))
 8     {
 9         if(n==-1)
10         break;
11         memset(vis,0,sizeof(vis));
12         vis[0]=1;
13         for(i=0;i<n;i++)
14         {
15             scanf("%s",s);
16             vis[s[0]-'a']=vis[s[2]-'a'];//覆盖掉前面的进行标记;
17         }
18         int flag=1;int sum=0;
19         for(i=0;i<26;i++)
20         {
21             if(vis[i])
22             {
23                 sum++;
24                 if(sum==1)
25                     printf("%c",i+'a');
26                 else
27                     printf(" %c",i+'a');
28                 flag=0;
29             }
30         }
31         if(flag==1) printf("none");
32         printf("\n");
33     }
34 }
View Code

在很多程序设计语言中,忘记给变量赋初值的错误常令人头疼。请编程求出含N(0≤N≤100)行的程序段运行以后有哪些变量中有确定的值。 在下面的问题中,最开始仅有变量a中有确定的值。变量为单个小写字母,每行恰好有三个字符,中间一个是赋值运算符'='。

Input

输入有多组数据,每组数据的第一行有一个整数N,表示程序段的行数。以下N行,每行3个字符,为一条语句。最后一组数据N=-1表示输入结束,不需要处理。

Output

对每一组数据输出一行结果,按字母表顺序给出所有有确定值的变量名。如果没有变量有确定的值,输出none。

Sample Input

4
b=a
c=d
d=b
e=f
-1

Sample Output

a b d
posted @ 2013-06-11 20:16  风儿-zsj  阅读(236)  评论(0编辑  收藏  举报