Autor Tema: bucles, break y continue. Acabar programa con exit en C (LenguajeC) CU00544F  (Leído 2539 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola, dejo una posible solución al ejercicio CU00544F del curso 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 dirá la media 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?
Que en cuanto introducimos un número negativo, el programa solo nos devolverá el resultado de calcular de la media de los número introducidos, exceptuando el número negativo. Esto ocurre porque así lo indica en esta línea:
   
Código: [Seleccionar]
if(num<0.0) break;
Citar
c) ¿Qué signficado tiene %.2f dentro de este programa?
Que se imprimirá 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
¿Para qué crees que sirve este código?
Nos dice el producto de 4 números que introduciremos previamente.
Ej: si introducimos estos 4 números: 4, 3, 2, 1 nos devolverá 4*3*2*1.

Citar
Qué ocurre si introducimos como números 3, 0, -5, 2 ¿Por qué ocurre eso? ¿Qué significado tiene lo que se muestra por pantalla?
Que solo multiplica los número que sean distintos de 0. Esto ocurre porque en el if se comprueba si se introduce 0 como valor, y si es así, usamos continue para que el código no multiplique 0 por la variable donde hemos ido almacenando el valor de las multiplicaciones anteriores.

Citar
¿Es legal escribir un if sin los corchetes { … }?
No.

Citar
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.

Saludos. ;D
« Última modificación: 27 de Junio 2016, 22:01 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!

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

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

 

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".