Formas de utilizar el bucle For (II)
De Ejercicios
Contenido |
Enunciado
Para realizar este ejercicio deberás basarte en el programa sumaFor.c. Modifica este programa de forma que realice la suma y el producto de los n primeros números enteros, siendo n un número que deberá teclear el usuario. La salida del programa deberá ser idéntica a la que se muestra un poco más adelante, es decir, debe ocupar cuatro líneas y cada salto de línea ha de realizarse en el lugar indicado. En este caso se ha particularizado para una entrada (en negrita, para indicar que es un número tecleado por el usuario) de n=12. Sálvalo como factorial.c y ¡atención a la declaración de variables! Este programa suma y multiplica los n primeros numeros enteros, siendo n el numero que tu quieras.
Teclea n: 12
La suma de los 12 primeros numeros es: 78
El producto de los 12 primeros numeros, es decir, el factorial de 12 es: 479001600.
Soluciones
Programa en C por Angel
Solución comentada al Ejercicio:
/* fichero factorial.c */ #include <stdio.h> void main(void) { int i, suma, n; long int factorial; printf("%s%s%s\n", "Este programa suma y multiplica ", "los n primeros numeros enteros, ", "siendo n el numero que tu quieras.\n"); printf("Teclea n: "); scanf("%d", &n); suma=0; factorial=1; for (i=1; i<=n; i++) { suma+=i; factorial*=i; } printf("La suma de los %d primeros enteros es: %d\n", n, suma); printf("El producto de los %d primeros numeros, es decir, ", n); printf("el factorial de %d es: %ld\n", n, factorial); }
Comentario
Obsserva la primera llamada a la función printf() se realiza utilizando tres cadenas de caracteres como argumentos, que se escriben con los formatos (%s%s%s). Este método permite acortar una cadena de control muy larga, que debe ocupar una única línea en el fichero fuente del programa. Puede ser también muy útil cuando se quieren destacar palabras, si se utiliza un número con el %s (%20s escribe la cadena en 20 espacios, aunque su longitud sea menor). El otro punto a comentar de este programa es la declaración de variables. Observa que se utiliza un long para el factorial en lugar de un int. Esto es debido a que un factorial pasa con facilidad del máximo valor que puede almacenar un int (factorial de 8 ya es mayor que 32767). Incluso si se quiere obtener un valor muy alto se puede utilizar una variable de tipo double aunque los valores que maneje sean enteros.