• SWUST 167


    赋值了吗?

    Time Limit: 1000MS Memory Limit: 65535KB
    Submissions: 161 Accepted: 43
    Description

    现在很多的程序设计语言中,赋值已经是一个不容忽视的问题,如果一个变量在未进行赋值的情况下使用,那么这个值将是不定的(哈哈,我已经被遭了好多次了)!而我写的程序用到的变量实在是太多了,又不想自己统计哪些变量是已经赋值了的,现在就请你帮我统计一下哪些变量已经赋值了。为了简化问题,我们假设最开始仅有变量a中有确定的值。变量为单个小写字母,每行恰好有三个字符,中间一个是赋值运算符'='。请编程求出含N行的程序段运行以后有哪些变量中有确定的值。并且该赋值表达式的出现顺序也即是其在程序中的相对顺序。

    Input

    T(1<= T <= 27) 表示测试实例个数 N (0 < N ≤ 100) 表示赋值表达式的个数 以下N行中,每行3个字符,为一条语句

    Output

    在一行中按字母表顺序给出所有有确定值的变量名,中间以一个空格隔开。 如果没有变量被赋值,则输出“none”。

    Sample Input

    3
    1
    a=a
    2
    b=c
    c=d
    4
    b=a
    c=d
    d=b
    e=f
    

    Sample Output

    a
    none
    a b d
    
     1 #include <iostream>
     2 #include <string>
     3 #include <cstring>
     4 #include <map>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9      int i,j,k,T;
    10      map <char,bool > mm;
    11      char str[5]={'\0'};
    12      cin>>T;
    13      while(T--)
    14      {
    15           int num;
    16           cin>>num;
    17           //mm.clear();
    18           mm.erase(mm.begin(),mm.end());
    19           memset(str,0,sizeof(str));
    20           mm['a'] = 1;
    21           bool flag = 0;
    22           for(i=1;i<=num;i++)
    23           {
    24                cin>>str;
    25                if(str[2] == 'a')
    26                     flag = true;
    27                //if(mm[str[2]]==1)// 用这个不能判断一个数是否存在 
    28                if(mm.count(str[2])==1)//count返回的是key的个数
    29                     //mm[str[0]] == 1;
    30                     mm.insert(pair<char,bool>(str[0],true));
    31           }
    32           if(flag==0)//flag这个变量很必须,不能用mm.size()==0 
    33           {
    34                cout<<"none"<<endl;
    35           }
    36           else
    37           {
    38                map<char ,bool >::iterator ptr = mm.begin();
    39                cout<<ptr->first;
    40                ptr++;
    41                for(;ptr!=mm.end();ptr++) 
    42                     cout<<" "<<ptr->first;
    43                cout<<endl;
    44           }
    45           cin>>unitbuf;
    46      }
    47      return 0;
    48 }
    49                
    50                
    51           
  • 相关阅读:
    gridview 列排序问题
    asp.net中session丢失原因分析
    网页flash挡住了TQ的解决办法
    php正确率比较高的安装教程
    PHP5+APACHE2.2配置
    HTML5: HTML5 网站设计作品欣赏
    ASP.NET开源CMS汇总
    ASP.NET:页面传值的几种方式
    Access:数据库操作常见错误
    observer pattern
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2687267.html
Copyright © 2020-2023  润新知