La Red de Conocimientos Pedagógicos - Currículum vitae - Preguntas del examen real de Acm csdn

Preguntas del examen real de Acm csdn

Es una pena que estés a sólo un paso de AC en este tema. De hecho, cuando ingresa n, hay un retorno de carro y getline leerá ese retorno de carro. Por supuesto, el retorno de carro no puede ser un identificador legal, por lo que no importa cuáles sean los datos de prueba, su salida tendrá un no al principio. De hecho, sólo necesita agregar un getchar() después de CIN>>n;.

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;

}