Resolver C++

Iniciado por recostico, 27 Noviembre 2018, 19:18 PM

0 Miembros y 1 Visitante están viendo este tema.

recostico

Indique  cuál seria la salida  que  se obtendría ejecutando el siguiente  trozo  de código  en  c++:
for  (int  i=1;  i++<10;  i++)  { (  (i  ==  5)?  cout<<  "Cinco":  cout  <<  i  <<  "");}
a)  0 2 4 6 8  b)  1 3  Cinco  7 9
c)  2 4 6 8 10  d)  1 3 5 7 9


K-YreX

Como comprenderás el foro no está para que te hagamos la tarea.
Te recomiendo que comentes lo que entiendes tú de ese código y te podremos ayudar a entenderlo y resolverlo.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

Beginner Web

La verdad que es medio raro eso, se la respuesta pero no se como es que el signo ? funciona en ese fragmento de codigo alguien sabe?
Por cierto una pista de la respuesta son numeros del mismo tipo... ;-)
7w7

AlbertoBSD

Cita de: Beginner Web en 29 Noviembre 2018, 00:57 AM
La verdad que es medio raro eso, se la respuesta pero no se como es que el signo ?

Es el Operador Ternario, es basicamente un mini if

char C = 'A';
printf("%s\n",(C == 'A')? "Verdadero": "Falso");


Se utiliza para realizar ciertas evaluaciones rapidamente.

De manera que te devuelve el primer valor el que esta antes del ":" si la evaluacion fue verdadera, encaso contrareo te devuelve lo que esta despues del ":"

Otro ejemplo seria:


char C = 'A',otro;
otro = (C == 'A') ? 'q' : 'r' ;



Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

CalgaryCorpus

Aunque un código así escrito compile, no es el más leible.
Una manera no tan obfuscada de escribirlo podría ser:


Código (cpp) [Seleccionar]

cout << ( (i == 5) ? "Cinco" : i ) << " ";
Aqui mi perfil en LinkedIn, invitame un cafe aqui

Beginner Web

Cita de: AlbertoBSD en 29 Noviembre 2018, 01:05 AM
Es el Operador Ternario, es basicamente un mini if

char C = 'A';
printf("%s\n",(C == 'A')? "Verdadero": "Falso");


Se utiliza para realizar ciertas evaluaciones rapidamente.

De manera que te devuelve el primer valor el que esta antes del ":" si la evaluacion fue verdadera, encaso contrareo te devuelve lo que esta despues del ":"

Otro ejemplo seria:


char C = 'A',otro;
otro = (C == 'A') ? 'q' : 'r' ;



Saludos
Ahh claro es por esto (int  i=1;  i++<10;  i++)  que i nunca va a valer 5 por lo tanto nunca se mostrara "Cinco" por pantalla, solamente el valor de i ya que i no cumple con esa condicion, gracias Alberto, ya lo entendí  :laugh:
7w7

recostico

Muchas gracias a todos, me parecía muy complejo y no llegaba a entenderlo.  ;-)