关键字yes和关键字no的两个代码都能a,我还是上这个关键字no的吧....
http://acm.hdu.edu.cn/showproblem.php?pid=2024
C语言合法标识符
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 14564 Accepted Submission(s): 6107
Problem Description
输入一个字符串,判断其是否是C的合法标识符。
Input
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
Output
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
Sample Input
3 12ajf fi8x_a ff ai_2
Sample Output
no yes no
- #include<iostream>
- using namespace std;
- int main()
- {
- int n,i,flag;
- int fun(string *str);
- char str[51];
- cin>>n;cin.get();
- while(n--)
- {
- flag=1;
- cin.getline(str,50);
- for(i=0;str[i]!='\0';i++)
- if(!((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')||(str[i]>='0'&&str[i]<='9')||str[i]=='_'))
- {
- flag=0;
- break;
- }
- char chr[33][10]={"auto","enum","unsigned","break","extern","return","void","case","float","short","volatile","char","for","signed","while","const","goto","sizeof","continue","if","static","default","inline","struct","do","int","switch","double","long","typedef","else","register","union"};
- int i;
- for(i=0;i<34;i++)
- {
- if(strcmp(str,chr[i])==0)
- {
- flag=0;
- break;
- }
- }
- if((str[0]>='0'&&str[0]<='9'))
- flag=0;
- if(flag)
- cout<<"yes"<<endl;
- else
- cout<<"no"<<endl;
- }
- return 0;
- }