Preguntas del examen real de Acm csdn
Ejemplo:
# include & ltiostream & gt
# include & ltstring& gt
# include & ltctype.h & gt
Usar espacio de nombres std
int main()
{
int n;
CIN & gt;& gtn;
getchar();
mientras(n -)
{
int bandera = 1;
String s;
getline(南CIN);
if (!isalpha(s[0])&&s[0]!= '_ ') bandera = 0 ; ////Comprueba si comienza con una letra o un guión bajo.
for(int I = 1;i<s.length().i++)
{
if(!isonam(s[I ])& & amps [i]! = ' _ '){ bandera = 0; descanso;}
}
if(bandera)cout <<" Sí"& lt& ltendl
else cout & lt& lt"No"& lt& ltendl
}
Devuelve 0;
}
Supongo que puede estar usando VC. Si planea participar en ACM, no utilice VC. Los compiladores GCC y G++ reconocidos oficialmente por VC y ACM son muy diferentes. Muchas cosas garantizadas por VC no están garantizadas en G++. Se recomienda utilizar DEV C++ o Codeboxes. Además, me gustaría decir que los tipos de cadenas deben usarse con precaución. Generalmente, este tipo de preguntas prueban el funcionamiento de simulación de cadenas y no necesitan utilizar cadenas.
Mi código AC de referencia (GCC):
# include & ltstdio.h & gt
# include & ltstring.h & gt
char a [100 ];
int i, n, m, temp
int main(void)
{
scanf("% d " ,& ampn);
getchar();
mientras(n -)
{
temp = 1;
Get(a);
m = strlen(a);
Si (!(a[0]>= 65 & amp& ampa[0]& lt; =90||a[0]>= 97 & amp&a[0]& lt;= 122 | a[0]= = ' _ '))printf(" no \ n "); Otro
{
for(I = 1;i<m;i++)
{
if (!( a[I]> ;= 65 &a[I]<= 90 | | a[I]>= 97 &a[I]>= 48 | &&a[I]<=57))
{
temp = 0;
Descanso;
}
}
if(temp == 1)printf(" si \ n ");
else printf(" no \ n ");
>}
}
Devuelve 0;
}