Buenas, dejo una posible solución a este ejercicio (CU00550F del curso para aprender a programar en lenguaje C).
EJERCICIO Nº1
Refactoriza el código que hemos visto como ejercicio resuelto para que cumpla con estos requisitos:
a) La función entraDatos deberá tener como tipo de retorno int en lugar de void, de modo que devolverá el valor introducido por el usuario.
b) La función proceso ya no existirá y en su lugar tendremos dos funciones: calcularRaiz(int num) y calcularSumatorio (int num)
c) La función resultados ya no existirá y su cometido será realizado dentro del main.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int entraDatos(); double calculaRaiz(int num); int calcularSumatorio(int num);
int main() {
int num = entraDatos();
printf("La ra\xA1z cuadradada de %d es: %lf\n", num, calculaRaiz(num));
printf("El sumatorio de %d es: %d", num, calcularSumatorio(num));
return 0;
}
int entraDatos() {
int dato = 0;
do {
printf("\nPor favor introduzca numero entero entre 0 y 100: ");
scanf("%d", &dato);
} while (dato<0 || dato>100);
return dato;
}
double calculaRaiz(int num){
double resultado;
resultado = sqrt(num);
return resultado;
}
int calcularSumatorio(int num) {
int resultado = num;
int i = num -1;
for (i; i>0; i--) {
resultado = resultado + i;
}
return resultado;
}
EJERCICIO Nº 2
Estudia el siguiente código y responde a las preguntas:
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
// Ejercicios curso C aprenderaprogramar.com
//---------------------------------
void fun(int arr[]) {
int i;
for(i=0;i< 5;i++)
arr[i] = arr[i] + 10;
}
//--------------------------------
void main() {
int arr[5],i;
clrscr();
printf("\nEnter the array elements : ");
for(i=0;i< 5;i++)
scanf("%d",&arr[i]);
printf("\nPassing entire array .....");
fun(arr); // Pass only name of array
for(i=0;i< 5;i++)
printf("\nAfter Function call a[%d] : %d",i,arr[i]);
getch();
}
a) Busca información sobre conio.h, clrscr() y getch() ¿Forman parte del estándar de C?
No,La librería conio.h no se considera parte de la biblioteca estándar de C.
) Si el programa no te funciona, reescríbelo para que funcione.
#include <stdio.h>
#include <stdlib.h>
void fun(int arr[])
{
int i;
for(i=0; i< 5; i++)
arr[i] = arr[i] + 10;
}
void main()
{
int arr[5],i;
printf("\nEnter the array elements : ");
for(i=0; i< 5; i++)
scanf("%d",&arr[i]);
printf("\nPassing entire array .....");
fun(arr); // Pass only name of array
for(i=0; i< 5; i++)
printf("\nAfter Function call a[%d] : %d",i,arr[i]);
}
c) ¿Qué objetivo tiene este programa? ¿Qué resultado debe devolver si se introducen los números 1, 2, 3, 4, 5?
Introducimos valores en un array de enteros de 5 elementos, luego cambiamos los valores de cada elemntos sumandole 10 a cada uno y luego lo mostramos por pantalla.
Passing entire array .....
After Function call a[0] : 11
After Function call a[1] : 12
After Function call a[2] : 13
After Function call a[3] : 14
After Function call a[4] : 15
d) ¿Es válido un bucle for sin llaves delimitadoras { … } de las instrucciones a ejecutar?
Si.
Saludos.