Acm真题csdn
示例:
# include & ltiostream & gt
# include & lt字符串& gt
# include & ltctype.h & gt
使用命名空间std
int main()
{
int n;
CIN & gt;& gtn;
getchar();
while(n -)
{
int flag = 1;
字符串s;
getline(南CIN);
如果(!isalpha(s[0])& amp;& amps[0]!='_ ')标志= 0;////检查开头是字母还是下划线。
for(int I = 1;我& lts.length()。i++)
{
如果(!伊索那姆(s[I])& amp;& amps[i]!= ' _ '){ flag = 0;打破;}
}
if(flag)cout & lt;& lt“是”& lt& ltendl
else cout & lt& lt“否”& lt& ltendl
}
返回0;
}
估计你可能用的是VC。如果打算搞ACM,就不要用VC了。VC和ACM官方认可的GCC和G++编译器差别很大。很多VC保证的东西在G++里是不保证的,建议用DEV C++或者Codeboxes。还有,我想说,字符串类型要慎用。一般这种题都是测试字符串的模拟运算,不需要用到字符串。我的AC的代码供参考(GCC):
# include & ltstdio.h & gt
# include & ltstring.h & gt
char a[100];
int i,n,m,temp
int main(void)
{
scanf("%d ",& ampn);
getchar();
while(n -)
{
temp = 1;
获取(a);
m = strlen(a);
如果(!(a[0]>= 65 & amp& ampa[0]& lt;=90||a[0]>= 97 & amp& ampa[0]& lt;= 122 | | a[0]= = ' _ '))printf(" no \ n ");
其他
{
for(I = 1;我& ltm;i++)
{
如果(!(a[I]& gt;= 65 & amp& ampa[I]& lt;= 90 | | a[I]& gt;= 97 & amp& ampa[I]& lt;= 122 | | a[I]= = ' _ ' | | a[I]& gt;= 48 & amp& ampa[I]& lt;=57))
{
temp = 0;
打破;
}
}
if(temp = = 1)printf(" yes \ n ");
else printf(" no \ n ");
}
}
返回0;
}