FJNU.1422
Description
在很多程序设计语言中,忘记给变量赋初值的错误常令人头疼。
在下面的问题中,最开始仅有变量a中有确定的值。变量为单个小写字母,
每行恰好有三个字符,中间一个是赋值运算符'='。
请编程求出含N行的程序段运行以后有哪些变量中有确定的值。
Input
第一行:M 表示有M组测试数据,每组测试数据第一行包含N(0<N<=10^6)
以下N行,每行3个字符,为一条语句
Output
如果没有,输出none否则在一行中按字母表顺序给出所有有确定值的变量名。
字母之间用一个空格隔开。
Sample Input
1
4
b=a
c=d
d=b
e=f
Sample Output
a b d
Source
oibh
My Program
#include<iostream>
using namespace std;
int main()
...{
bool dim[26],flag;
char a,c,s[3];
int d,k,i,n,m;
cin>>k;
for(d=0;d<k;d++)
...{
flag=false;
dim[0]=true;
cin>>n;
getchar();
for(i=1;i<26;i++)
dim[i]=false;
for(i=0;i<n;i++)
...{
gets(s);
a=s[0];c=s[2];
if(dim[c-'a']==true)
dim[a-'a']=true;
else
dim[a-'a']=false;
}
for(i=0;i<26;i++)
if(dim[i])
m=i;
for(i=0;i<26;i++)
if(dim[i])
...{
flag=true;
printf("%c",i+'a');
if(i!=m)
printf(" ");
}
if(!flag)
cout<<"none";
cout<<endl;
}
return 0;
}YOYO's Note:
因为变量只用一个小写字母,所以直接开了26的数组用来计数是否有赋值。
模拟一下就好了,不过很耗时,0.04s……
本文介绍了一个程序设计问题:如何通过编程方法找出经过一系列赋值操作后哪些变量具有确定的值。该程序使用C++实现,能够处理大规模的输入数据,并通过样例展示了其功能。

713

被折叠的 条评论
为什么被折叠?



