Operador condicional ?: (Duda)

Iniciado por mort, 31 Enero 2015, 21:46 PM

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

mort

Mi duda es la siguiente,  ¿porque el resultado de la operación entre contador % 2 es igual 1 se imprime "****" y si es 0 "++++++"?

¿Como se sabe que es lo que se va a imprimir?
¿ Cual es la condición si el resultado es 1 o 0?

no se si me explique, aquí esta el programa:

[/#include <stdio.h>

int main ()
{
int contador = 1;

    while (contador <= 10){
printf("%s\n", contador % 2 ? "****" : "++++++");
++contador;
}

system ("pause");

return 0;
}
]

engel lex

por resumir
Código (cpp) [Seleccionar]
printf("%s\n", contador % 2 ? "****" : "++++++");

es igual a
Código (cpp) [Seleccionar]
if(contador%2){//si es diferente de 0, entonces ==true
  printf("%s\n", "****");
}else{
  printf("%s\n", "++++++");
}



ese operador puede ser visto como
algo ? if(true):if(false)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.