[ Foro de C ]
Dudas sobre el test del tema 3
En esta pregunta no entiendo pq se muestra un 11, si pone q es menor que 10...
for (i=0; i<=10; i++); printf("%d ", i);
Se mostraría en pantalla el número 11
*******************************************
Aqui no es de la z a la a? o aqui pregunta de la a a la z? entonces seria letra++ en vez de letra--, a eso se refiere?
for ( letra= 'a' ; letra<= 'z' ; letra--)
printf( "%c" , letra);
Es incorrecto, cuenta al revés de lo que debería
*******************************************
Aqui no deberia decir q es incorrecto? le falta el = al if ¿o el if no afecta al printf?
int x=1;
if (x=2) printf("Hola"); else printf("Adios");
Se escribiría en pantalla Hola
A ver..... en la primera, se mostraria un 11 en pantalla por que recuerda que cuenta del 0 al 10, y del 0 al 10 hay 11 nuemros ....
>--------------------------------------<
En el segundo creo que deberia dar un error de compilacion por que 'letra--' deberia ser 'letra ++' como tu dices... tendria que probarlo
>--------------------------------------<
.....Y en el tercero en la exprecion '(x=2)' pienso que no influye sobre el printf ("Hola") porque... si fuera '(x==2)' si influiria, por lo tanto no reconoce el '(x=2)' y muestra en pantalla Hola,
Espero que aya sido de algo mi ayuda... xD un saludo y a estudiar muxo
en la primera: es 11 porque hace primero el for cuando i va pasando del 0 al 10 pero en la ultima pasada del for en la que i es = a 10 hace el ultimo i++ asi cuando sale del for i vale 11.
la segunda: si que pregunta de la 'a' a la 'z' y deberia ser letra++ por eso esta mal en vez de contar letra++ cuenta al reves letra-- y haria cosas raras a parte de que nunca acabaría el for. Vamos que a saber que puede salir de ahí, pero si que compila y va.
la tercera: al poner if (x=2) a x le estamos dando el valor 2 en vez de comparar (vamos que si que lo reconoce) por eso siempre va a ser verdad el if y va a cumplir la condicion. Por eso saldra siempre "hola" y nunca adios. Para que funcione bien tiene que ser == para que haga la comparacion en vez de darle ese valor.
Mas o menos viene a ser eso
Las respuestas del señor Tetsu son casi impecables:
- En la primera hay un ; después del for, luego repite NADA desde que i vale 0 hasta que vale 10. Cuando vale 11, termina el "for" (ya no se cumple la condición) y se pasa a la siguiente orden (escribir el valor de i, que ya es 11).
- Segunda: correcto, para llegar de la "a" a la "z" habría que sumar, no que restar. Compila, pero hay un falta de coherencia que hará que no funcione bien.
- Tercera: correcto, el fallo (que todavía cometeis con cierta frecuencia) es poner una asignación (x=2) en vez de una comparación (x==2). El resultado de x=2 es 2, que en C se evalúa como "verdad" (0=falso, otra cosa=verdad), por lo que siempre se escribirá Hola.
N.
(No se puede continuar esta discusión
porque tiene más de dos meses de antigüedad.
Si tienes dudas parecidas, abre un nuevo hilo.)