Autor Tema: Finalizar programas en C. Cambiar flujo bucles break continue LenguajeC CU00544F  (Leído 2481 veces)

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Hola, dejo una posible solución al ejercicio CU00544F del curso autoevaluable online de programación en lenguaje C.

Citar
EJERCICIO Nº 1

Estudia el siguiente código y responde a las preguntas:


Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
// Ejercicios aprenderaprogramar.com

int main(){
   float num,average,sum;
   int i,n;
   printf("Maximum no. of inputs\n");
   scanf("%d",&n);
   for(i=1;i<=n;++i){
       printf("Enter n%d: ",i);
       scanf("%f",&num);
       if(num<0.0)
       break;
       sum=sum+num;
}
  average=sum/(i-1);       
  printf("Average=%.2f",average);
  return 0;
}

Citar
a) ¿Para qué crees que sirve este código?

Programa que nos dice el promedio de n números.

Citar
b) Qué ocurre si introducimos como maximum no. of inputs 8 e introducimos los números 1.5, 12.5 y -1 ¿Por qué ocurre eso? ¿Qué significado tiene lo que se muestra por pantalla?

Cuando introducimos un número negativo, el program solo devuelve el resultado de la media de los numeros introducido, menos el negativo.  Esto ocurre por la línea de código:

Código: [Seleccionar]
if(num<0.0) break;
Citar
c) ¿Qué signficado tiene %.2f dentro de este programa?

Se imprime una variable tipo float con 2 decimales


Citar
EJERCICIO Nº 2

Estudia el siguiente código y responde a las preguntas:


Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
// Ejercicios aprenderaprogramar.com

int main(){
    int i,num,product;
    for(i=1,product=1;i<=4;++i){
        printf("Enter num%d:",i);
        scanf("%d",&num);
        if(num==0)
            continue; 
        product*=num;
}
    printf("product=%d",product);
return 0;
}

Citar
a) ¿Para qué crees que sirve este código?]

Este programa nos dice el producto de 4 números que piden al usuario.
Ejemplo.  Si introducimos 5,8,6,9,  nos devolverá 5*8*6*9. 


Citar
b) Qué ocurre si introducimos como números 3, 0, -5, 2 ¿Por qué ocurre eso? ¿Qué significado tiene lo que se muestra por pantalla?

Solo multiplica los números distintos de 0. Esto es así proeque en el if se comprueba si se introduce 0 como valor, y si es así, usamos continue para que no multiplique 0 por la variable donde hemos ido almacenando el valor de las multiplicaciones anteriores.

Citar
c) ¿Es legal escribir un if sin los corchetes { … }?


No

Citar
d) Qué ocurre si introducimos como números 0, 0, 0, 0 ¿Por qué ocurre eso? ¿Qué significado tiene lo que se muestra por pantalla?

Que el producto nos devuelve 1, porque es el valor que le hemos asignado a la variable product anteriormente.


« Última modificación: 29 de Junio 2016, 22:00 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola!

Pedirte que si usas un color sea marrón o similar, porque el naranja se ve mal.

Bien! La única cosa que veo a comentar es la pregunta ¿Es legal escribir un if sin los corchetes { … }?

Esto ya se ha comentado en otro hilo, pero te copio para que lo puedas leer aquí directamente.

Considerar algo legal o no legal viene dado básicamente por la especificación oficial del lenguaje, es decir, los criterios que definieron los creadores del lenguaje. Y también por el comportamiento del compilador, es decir, si el compilador acepta o no una expresión.

Puede ocurrir que el compilador acepte algo y no sea legal. O puede ocurrir que algo supuestamente legal según la especificación del lenguaje no sea aceptado por un determinado compilador.

En C sí es legal escribir un if sin los corchetes. Es decir, es algo que los creadores del lenguaje especificaron que sí era posible, y es admitido por los compiladores. Lo que sí solemos decir es que no es recomendable usar if sin los corchetes, porque así evitamos confusiones. Cuando se usa un if sin corchetes es como si existiera un corchete únicamente para la siguiente instrucción después del if.

Esto se comenta en http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=925:if-then-else-en-c-estructura-condicional-decision-o-bifurcacion-sintaxis-ejemplos-and-or-igual-que-cu00529f&catid=82:curso-basico-programacion-lenguaje-c-desde-cero&Itemid=210

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
ok, cambiaré el color y gracias por la corrección y por tu tiempo, la explicación me ha servido de mucho, me ha aclarado, gracias.

Saludos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".