题目大意:
给出一系列的赋值语句,假定变量a是有确定值的,其他所有变量都不确定,所有变量均是小写字母。我们必须在执行完这段代码之后输出所有值确定的变量。
解题思路:
用ch数组记录该字母是否被赋值。首先执行ch[0]=1,因为a有确定值,然后我们看右操作数是否被赋值,如果被赋值,则左边变量也要赋值。最后输出结果。
代码如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
char str[10];
int n;
int cnt;
int ch[26];
int i;
int count=0;
while(scanf("%d",&n)!=EOF&&(n!=0))
{
count++;
memset(ch,0,sizeof(ch));
ch[0]=1;
getchar();
for(i=1;i<=n;i++)
{
gets(str);
if(ch[str[4]-'a']==1)
{
ch[str[0]-'a']=1;
}
else
{
ch[str[0]-'a']=0;
}
}
cnt=0;
printf("Program #%d\n",count);
for(i=0;i<26;i++)
{
if(ch[i]==1)
{
cnt++;
printf("%c ",'a'+i);
}
}
if(cnt==0)
{
printf("none");
}
printf("\n\n");
}
return 0;
}