Aki tienes un ejemplo... espero que te ayude a entender el uso de las funciones:
Ten en cuenta que sobre las funciones hay mucho más de lo que aqui te expongo... Intenta buscar un manual donde encontrarás todas las posibilidades que se le pueden dar:
void main()
{
int num, resultado;
int calcula_cuadrado(int); //(*)
printf("Introduce un numero");
scanf("%d",&num);
resultado=calcula_cuadrado(num);
printf("nEl resultado es: %d",resultado);
}
int calcula_cuadrado(int a)
{
int devolver;
devolver=pow(a,2); //math.h
return(devolver);
}
(*)Como la función se encuentra debajo de la main, he tenido que definir un prototipo de la funcion dentro de la main para que el compilador no diga nada. Una opción válida es crear las funciones antes de la main o de aquellos sitios desde los que haces referencia a ellas... de tal manera que cuando el compilador encuentre una llamada a esa función ya sepa que esa función existe:
int calcula_cuadrado(int a)
{
int devolver;
devolver=pow(a,2);
return(devolver);
}
void main()
{
int num,resultado;
printf("Introduce un numero");
scanf("%d",&num);
resultado=calcula_cuadrado(num);
printf("nEl resultado es: %d",resultado);
}
También se pueden realizar las funciones para que reciban las variables por referencia y no por valor, esto es, enviar la direccion de la variable a manipular y no una copia de ella, además de ahorrar espacio en memoria, nos permitirá modificar tantas variables como queramos desde la función, no hay que olvidar que una función sólo puede devolver una variable:
void calcula_cuadrado(int *a) //recibimos la direccion de un entero
{ // y no devolvemosnada
*a=pow(*a,2); //guardamos en lo apuntado por a (num) a al cuadrado
}
void main()
{
int num,resultado;
printf("Introduce...");
scanf("%d", &num);
calcula_cuadrado(&num); //pasamos la direccion de num
resultado=num;
printf("%d",resultado);
}
Espero que te sirva de ejemplo para empezar, Un saludo